为什么我不能以编程方式在转发器上的隐藏字段上设置值?

时间:2011-09-16 09:14:39

标签: c# asp.net

我遇到了这个奇怪的问题。我有一个RowDataBound事件处理程序用于转发器控件。

我有代码:

HiddenField hfIpAddressRangeId = (HiddenField)e.Row.FindControl("hfIpAddressRangeId");
hfIpAddressRangeId.Value = .IpAddressRangeId.ToString();

但是当我查看html时,未设置该控件的值。但是当我使用内联C#设置值时,例如

<asp:HiddenField runat="server" Value='<%# Eval("IpAddressRangeId ") %>' ID="hfIpAddressRangeId" ViewStateMode="Enabled" />

正在设置该值。当我绑定每个数据行时,我不确定为什么这不起作用?

1 个答案:

答案 0 :(得分:3)

看起来IpAddressRangeId是数据源的一部分,因此在第二个示例中使用了Eval。你试过这个吗?:

HiddenField hfIpAddressRangeId = (HiddenField)e.Row.FindControl("hfIpAddressRangeId"); 
hfIpAddressRangeId.Value = DataBinder.Eval(e.Row.DataItem, "IpAddressRangeId").ToString();