簡體   English   中英

單擊gridview外部的按鈕即可獲取gridview的rowindex

[英]Get rowindex of gridview on click of a button outside gridview

在我的asp.net application (v4.0) ,我有一個網格視圖。 我使用列表對象將數據綁定到網格視圖。

在網格視圖中,有一個取消按鈕。 單擊取消按鈕后,應用程序應向用戶彈出一條消息,要求確認以繼續進行取消。 即。 您確定要取消記錄嗎? 當用戶選擇是時,則應取消特定記錄。

現在的問題是,當用戶選擇是時,我需要獲取單擊了“取消”按鈕的行的索引,並且需要從用於綁定網格並重新綁定gridview的列表對象中將其刪除。

請讓我知道如何實現這一目標。

感謝所有答復。.im使用自定義彈出窗口而不是內置的“ confirm”方法。 自定義彈出窗口將具有“確定”和“取消”按鈕控件。 僅在單擊“確定”按鈕時,我需要獲取選定的記錄索引。 某些回復中提到的內置確認方法將不適合我的情況。 請讓我知道如何實現這一目標。

將隱藏字段添加到您的頁面

<asp:HiddenField ID="HiddenField1" runat="server" />

使用記錄的Id(使用對應的列名代替Id)作為“取消”的CommandArgument按鈕

<asp:Button ID="btncancel" runat="server" CommandArgument='<%#Eval("Id") %>'  Text="Cancel" />

然后在單擊“取消”按鈕時,它將調用gridviews rowcommand函數。 在該函數中,將CommandArgument值保留在隱藏字段中,如下所示

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{

    HiddenField1.Value = e.CommandArgument.ToString();

}

然后在單擊“確定”按鈕時,它將調用單擊事件。 在該函數中,從列表中刪除項目,然后將列表再次綁定到gridview

protected void btnOK_Click(object sender, ButtonClickEventArgs e)
{
   string id = HiddenField1.Value;
   //use this id to remove the data from the List
   // bind the gridview
}

您是否嘗試過將CommandArgument值添加到代表該項目的取消按鈕,例如ID? 然后onclick,顯示一個彈出窗口,如果用戶選擇是,則使用ID從集合中刪除該項目,然后簡單地重新綁定網格。 該物品將消失。

嘗試這個..

您可以使用javascript函數。

<asp:Button ID="Button1" runat="server"  onclientclick="Validate(this) />

在頁面中聲明一個HTML隱藏字段...

<input id="Hidden1" type="hidden" runat="server" clientidmode="static"/>

function Validate(obj) {
    var r = confirm("are you sure you want to cancel ?");
    if (r == true) {
        var id = obj.id.toString();

        var index = id.split("_");

        var RowNumber = index[2].toString();
        document.getElementById('Hidden1').value=RowNumber ;
    }
    else {
        return;
    }
}

在這里,我們獲得按鈕的id有點像ContentPlacedholde_Button1_0 ..然后將其拆分以獲取索引。

在取消按鈕上使用命令名稱和命令參數,如下所示:

 <asp:Button ID="btncancel" runat="server" CommandArgument='<%#Eval("Id") %>' CommandName="Cancel" Text="Cancel" />

然后在gridviewRowcommand上使用以下命令:

 if (e.CommandName == "Cancel")
        {
              int count = GridViewName.Rows.Count;
                for (int i = 0; i < count; i++)
                {                      
                        int id = Convert.ToInt32(e.CommandArgument);
                }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM