我要访问的值的隐藏字段在我后面的代码。我知道当物品受到绑定时我需要这样做,但我似乎无法解决如何做到这一点。
protected void addLabelsWhereNeeded(object sender, EventArgs e)
{
// Get Value from hiddenfield
}
我要访问的值的隐藏字段在我后面的代码。我知道当物品受到绑定时我需要这样做,但我似乎无法解决如何做到这一点。
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>
只要确保你的索引正确的细胞和正确在该单元内进行控制。
对不起,我真的很笨。我之前没有使用gridviews。我实际上试图修改某人elses代码。你能解释一下'单元'号码是什么吗? – 2010-09-09 14:26:05
该号码用作该行的单元格索引。假设你在GridView中定义了ColumnA,ColumnB和ColumnC。在你的代码隐藏中,Cell [0]的索引应该是该行的ColumnA,而使用Cell [2]的索引应该是该行的ColumnC。 – Brissles 2010-09-09 14:44:35
在数据绑定的时候,我非常明白你想用这个私人领域实现什么?在RowDataBound事件中,您可以访问整个数据项,因此不需要使用隐藏值。
伪代码:
protected void Grid1_RowDataBound(object sender, GridViewRowEventArgs)
{
if(e.RowType == RowType.DataRow)
{
}
}
设置断点进入if语句,并使用快速监视,看你怎么需要转换当前必然要完全访问所有属性的DataItem,即使他们没有绑定到任何控制。
如何!那就是为什么我问。我之前做过一个中继器,但我似乎无法在gridview中使用相同的属性。我知道它沿着这些路线,但似乎无法获得价值。 ((HiddenField)在线.....(hdField))值; – 2010-09-09 13:51:06