我无法从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();
}
我如何解决我的问题?
答案 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中。