1

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

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

4

1 回答 1

1

看来您正在尝试将控件设置在错误的位置。你应该在初始化中设置它。

ASP.NET 页面生命周期概述说明如下:

在里面

在初始化所有控件并应用任何皮肤设置后引发。 单个控件的 Init 事件发生 在 页面的Init事件之前 。使用此事件来读取或初始化控件属性。

于 2012-04-16T21:12:31.503 回答