C# 访问gridview hiddenfield

C# 访问gridview hiddenfield,c#,asp.net,gridview,C#,Asp.net,Gridview,' /> 我想访问代码隐藏中隐藏字段中的值。我知道我需要这样做时,该项目是绑定,但我似乎无法解决如何做到这一点 protected void addLabelsWhereNeeded(object sender, EventArgs e) { // Get Value from hiddenfield } 是的,你是对的。您必须在ItemDateBound上执行此操作。选中“它必须工作”尝试添加 OnRowDataBound="addLabelsWhereNeeded" 到您的Gr

' />

我想访问代码隐藏中隐藏字段中的值。我知道我需要这样做时,该项目是绑定,但我似乎无法解决如何做到这一点

protected void addLabelsWhereNeeded(object sender, EventArgs e)
{

   // Get Value from hiddenfield
}

是的,你是对的。您必须在ItemDateBound上执行此操作。选中“它必须工作”

尝试添加

OnRowDataBound="addLabelsWhereNeeded"
到您的GridView。然后将相应单元格中的控件强制转换为HiddenField以获取值:

protected void addLabelsWhereNeeded(object sender, GridViewRowEventArgs e)
{
    HiddenField hf = e.Row.Cells[0].Controls[1] as HiddenField;
    String theValue = hf.Value;
}
假设您已将GridView定义为:

<asp:GridView runat="server" ID="gv" OnRowDataBound="addLabelsWhereNeeded"> 
    <Columns>
        <asp:TemplateField> 
          <ItemTemplate>
                <%--your hidden field--%>
          </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView> 


只需确保您正在为正确的单元格和该单元格内的正确控件编制索引。

我完全明白您在数据绑定时希望通过这个私有字段实现什么?在RowDataBound事件中,您可以访问整个数据项,因此不需要使用隐藏值

伪代码:

protected void Grid1_RowDataBound(object sender, GridViewRowEventArgs)
{
 if(e.RowType == RowType.DataRow)
 {

 }
}

在if子句中设置断点,并使用quickwatch查看如何强制转换当前绑定的DataItem以获得对所有属性的完全访问权限,即使它们未绑定到任何控件。

how!这就是我问的原因。我以前用中继器做过,但我似乎不能在gridview中使用相同的属性。我知道这是一个道理,但似乎无法得到价值。((HiddenField)e…(hdField)).Value;对不起,我真的很笨。我以前从未使用过GridView。我实际上是想修改别人的代码。你能解释一下“单元格”编号是什么吗?该编号用作该行的单元格索引。假设您在gridview中定义了ColumnA、ColumnB和ColumnC。在您的代码隐藏中,使用单元格[0]进行索引将是该行中的ColumnA,使用单元格[2]进行索引将是该行中的ColumnC。