单击网格视图外的按钮时获取网格视图的行索引

问题描述 投票:1回答:4

在我的asp.net application (v4.0)中,我有一个网格视图。我使用列表对象将数据绑定到网格视图。

在网格视图中,有一个取消按钮。单击取消按钮后,应用程序应向用户弹出一条消息,要求确认以继续进行取消。即。您确定要取消记录吗?当用户选择是时,则应取消特定记录。

现在的问题是,当用户选择是时,我需要获取单击了取消按钮的行的索引,并且需要将其从用于绑定网格的列表对象中删除并重新绑定gridview。

请让我知道如何实现。

感谢所有答复。我使用自定义弹出窗口,而不是内置的'confirm'方法。自定义弹出窗口将具有“确定”和“取消”按钮控件。仅在单击“确定”按钮时,我需要获取选定的记录索引。某些回复中提到的内置确认方法将不适合我的情况。请让我知道如何实现。

c# javascript asp.net gridview aspxgridview
4个回答
2
投票

向页面添加隐藏字段

<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
}

1
投票

尝试一下..

您可以使用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。然后我们将其拆分以获得索引。


1
投票

像这样在取消按钮上使用命令名称和命令参数:

 <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);
                }
        }

1
投票

您是否尝试过将CommandArgument值添加到代表该项目的取消按钮,例如ID?然后onclick,显示一个弹出窗口,如果用户选择是,则使用ID从集合中删除该项目,然后简单地重新绑定网格。该物品将消失。

© www.soinside.com 2019 - 2024. All rights reserved.