如何在网格视图中获取隐藏字段的值?

网格视图中隐藏字段的订单号为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方法访问隐藏的字段,获取值…

或者尝试发布更完整的源代码….