访问gridview hiddenfield

时间:2010-09-09 13:28:55

标签: c# asp.net gridview

                       '/>               

我想在后面的代码中访问隐藏字段中的值。我知道当项目被绑定时我需要这样做,但我似乎无法解决该怎么做。

protected void addLabelsWhereNeeded(object sender, EventArgs e)
{

   // Get Value from hiddenfield
}

3 个答案:

答案 0 :(得分:1)

尝试添加

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> 

只需确保索引正确的单元格并在该单元格内正确控制。

答案 1 :(得分:0)

是的,你是对的。您必须在ItemDataBound上执行此操作。检查它必须工作

答案 2 :(得分:0)

在数据绑定时,我确实看到了您希望通过此私有字段实现的目标?在RowDataBound事件中,您可以访问整个数据项,因此不需要使用隐藏值。

伪代码:

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

 }
}

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