如何获取设置为Visible = false的字段的值?如下:
<asp:BoundField DataField="ItemID" HeaderText="Line Item ID" Visible="false"/>
Run Code Online (Sandbox Code Playgroud)
但是,当我试图得到它
int temID = Convert.ToInt32(row.Cells[0].Text);
Run Code Online (Sandbox Code Playgroud)
它无法找到它并引发异常,但是如果我将它变为Visible ="true"则可行.
如果visible = false,我该如何检索值?
The*_*eed 11
在GridView的定义中,添加
<asp:GridView .... DataKeyNames="ItemID" ...>
Run Code Online (Sandbox Code Playgroud)
您还需要使用OnRowDataBound,而不是OnDataBound
<asp:GridView .... DataKeyNames="ItemID" ... OnRowDataBound="GridView_RowDataBound">
Run Code Online (Sandbox Code Playgroud)
然后在你的代码背后,这样的事情
protected void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
int ItemId = Int32.Parse(YourGridView.DataKeys[e.Row.RowIndex].Values[0].ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
我没有在发布之前测试这段代码.但这是你需要做的一般想法.它可能会也可能不会按原样运作.
Ele*_*lin 11
没有所有这些代码的另一种方式是这样的:
<style type="text/css">
.Hide
{
display: none;
}
</style>
Run Code Online (Sandbox Code Playgroud)
在页面或css文件中.并将此类设置为boundField:
<asp:BoundField DataField="Id" ItemStyle-CssClass="Hide" HeaderStyle-CssClass="Hide" />
Run Code Online (Sandbox Code Playgroud)
希望这有帮助.