FormView中具有公共属性的用户控件

时间:2012-04-16 20:38:50

标签: c# asp.net formview webusercontrol

我已将用户控件添加到表单视图项模板中,但我已向用户控件添加了公共属性,而我似乎无法弄清楚如何设置属性。我尝试过以下方法:

<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事件。这也不起作用。

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试将控件设置在错误的位置。你应该在Init。

中进行设置

ASP.NET Page Life Cycle Overview声明如下:

  

Init

     

在初始化所有控件和任何皮肤设置后引发   已被应用。该   Init   个别控制事件发生在之前   Init   页面的事件。使用此事件可以读取或初始化控件   属性。