点击gridview外的按钮获取gridview的rowindex

时间:2014-03-19 11:37:35

标签: c# javascript asp.net gridview aspxgridview

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

在网格视图中有一个取消按钮。点击取消按钮后,应用程序应向用户弹出一条消息,要求确认继续取消。即。你确定要取消记录是/否。当用户选择“是”时,应取消特定记录。

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

请让我知道如何实现这一目标。

感谢所有的回复..我使用自定义弹出窗口而不是内置'确认'方法。自定义弹出式按钮会“确定”。和'取消'按钮控件。只需点击“确定”即可。按钮我需要获取所选的记录索引。某些回复中提到的内置确认方法不适合我的方案。请让我知道如何实现这一目标。

4 个答案:

答案 0 :(得分: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();

}

然后单击“确定”按钮,它将调用click事件。在该函数中,从列表中删除项目,然后再将列表再次绑定到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 :(得分:1)

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

由于

保罗。

答案 2 :(得分: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 ..然后我们拆分它以获取索引..

答案 3 :(得分: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);
                }
        }