2010-09-09 65 views
2

'/> 访问的GridView hiddenfield

我要访问的值的隐藏字段在我后面的代码。我知道当物品受到绑定时我需要这样做,但我似乎无法解决如何做到这一点。

protected void addLabelsWhereNeeded(object sender, EventArgs e) 
{ 

    // Get Value from hiddenfield 
} 

回答

0

是的,你是对的。您必须在ItemDateBound上执行此操作。检查它必须努力

+0

如何!那就是为什么我问。我之前做过一个中继器,但我似乎无法在gridview中使用相同的属性。我知道它沿着这些路线,但似乎无法获得价值。 ((HiddenField)在线.....(hdField))值; – 2010-09-09 13:51:06

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> 

只要确保你的索引正确的细胞和正确在该单元内进行控制。

+0

对不起,我真的很笨。我之前没有使用gridviews。我实际上试图修改某人elses代码。你能解释一下'单元'号码是什么吗? – 2010-09-09 14:26:05

+0

该号码用作该行的单元格索引。假设你在GridView中定义了ColumnA,ColumnB和ColumnC。在你的代码隐藏中,Cell [0]的索引应该是该行的ColumnA,而使用Cell [2]的索引应该是该行的ColumnC。 – Brissles 2010-09-09 14:44:35

0

在数据绑定的时候,我非常明白你想用这个私人领域实现什么?在RowDataBound事件中,您可以访问整个数据项,因此不需要使用隐藏值。

伪代码:

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

} 
} 

设置断点进入if语句,并使用快速监视,看你怎么需要转换当前必然要完全访问所有属性的DataItem,即使他们没有绑定到任何控制。