如何在网格视图中获取隐藏字段的值?
网格视图中隐藏字段的订单号为7。
当我点击按钮的那一行
string sValue = ((HiddenField)GridView1.SelectedRow.Cells[7].FindControl("HiddenField1")).Value;
给出错误,即“对象引用未设置为对象的实例”。
<asp:HiddenField ID="HiddenField1" runat="server" Value=''/>
c#侧
else if (e.CommandName == "View") { string sValue = ((HiddenField)GridView1.SelectedRow.Cells[7].FindControl("HiddenField1")).Value; }
你试过这个吗?
HiddenField field = (HiddenField)GridView.Rows[GridView.SelectedIndex].FindControl("HiddenField1");
如果是的话,这个怎么样?
HiddenField field = GridView1.Rows[e.RowIndex].FindControl("HiddenField1") as HiddenField;
这是你可以尝试的另一个,
if(e.Row.RowType == DataControlRowType.DataRow) { HiddenField field = e.Row.FindControl("HiddenField1") as HiddenField; }
希望这有助于…干杯
删除单元格部分
如果您有所选行:
string sValue = ((HiddenField)GridView1.SelectedRow.FindControl("HiddenField1")).Value;
如果你有命令参数的e.rowIndex:
string sValue = ((HiddenField)GridView1.Rows[e.rowIndex].FindControl("HiddenField1")).Value;
您尝试访问SelectedRow,即使我没有看到代码,当您实际选择行时。 我的猜测是你只使用了一些自定义命令按钮,它并没有真正设置所选行。 修复它,它应该工作。
如果您不能/不想,您需要自己编写一些方法来查找所需的行,然后应用FindControl方法访问隐藏的字段,获取值…
或者尝试发布更完整的源代码….