在数据网格(ASP Webforms)中的行删除事件中获取隐藏值

3
我无法从数据表格中检索不可见列的值。如果列不可见,我该如何获取其值?
这是我的代码:
数据表格:
<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个回答

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样式隐藏列。

创建一个新的CSS类,并将其应用于BoundFieldItemStyle-CssClassHeaderStyle-CssClass。删除Visible="False"属性。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接