获取datagrid中的行删除事件的隐藏值(ASP Webforms)

时间:2013-08-15 03:03:46

标签: c# asp.net datagrid

我无法从datagrid中检索不可见列的值。如果列不可见,我怎样才能获得值?

这是我的代码:

Datagrid:

<asp:BoundField DataField="id" HeaderText="ID" ReadOnly="True" 
            Visible="False" />
        <asp:BoundField DataField="category" HeaderText="Category" />
        <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" 
            ShowHeader="True" />

关于行删除事件

 protected void dgvCategory_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string id = dgvCategory.Rows[e.RowIndex].Cells[0].Text;

        string name = dgvCategory.Rows[e.RowIndex].Cells[1].Text;

        runDelete(id, name);

        loadDataCategory();            

    }

我如何解决我的问题?

1 个答案:

答案 0 :(得分:4)

您可以将此ID列添加为DataKey

在你的aspx中

<asp:GridView DataKeyNames="id" ....

你的活动

protected void dgvCategory_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    var key = this.GridView1.DataKeys[e.RowIndex].Value.ToString();
}

其他选项是使用css样式隐藏列

使用display: none;创建新的css类,并将其应用于ItemStyle-CssClass的{​​{1}}和HeaderStyle-CssClass。删除BoundField属性。

现在您可以像其他列一样获取值,但它不会显示在客户端UI中。