我已将用户控件添加到表单视图项模板中,但我已向用户控件添加了公共属性,而我似乎无法弄清楚如何设置属性。我尝试过以下方法:
<uc1:OfacControl id="OfacControl1" runat="server" AssetEvictionId='<%# Bind("AssetEvictionId") %>' />
但是值永远不会正确设置。
我也试过在preRender方法中的表单的代码隐藏中这样做:
var assetEvictionIdHiddenField = (HiddenField)oFormView.FindControl("AssetEvictionIdHiddenField");
var OfacControl1 = (Ofac)oFormView.FindControl("OfacControl1");
if (OfacControl1 != null && assetEvictionIdHiddenField != null)
OfacControl1.AssetEvictionId = Convert.ToInt32(assetEvictionIdHiddenField.Value);
这也不起作用。
这似乎是一个时间问题。看起来控件的渲染时间与设置值的时间不同。如果绑定语法不起作用,并且我被迫使用后面的代码,我将使用哪个表单视图事件来设置值。我也尝试过OnItemCreated事件。这也不起作用。
答案 0 :(得分:1)
您似乎正在尝试将控件设置在错误的位置。你应该在Init。
中进行设置ASP.NET Page Life Cycle Overview声明如下:
在初始化所有控件和任何皮肤设置后引发 已被应用。该 Init 个别控制事件发生在之前 Init 页面的事件。使用此事件可以读取或初始化控件 属性。