在窗体视图中具有公共属性的用户控件

本文关键字:属性 用户 控件 窗体 视图 | 更新日期: 2023-09-27 18:31:23

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

<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事件。这也行不通。

在窗体视图中具有公共属性的用户控件

您似乎试图将控件设置在错误的位置。 您应该在 Init 中设置它。

ASP.NET 页面生命周期概述声明以下内容:

初始化

初始化

所有控件和任何外观设置后引发 已被应用。这 初始化 单个控件的事件发生在 初始化 页面的事件。使用此事件读取或初始化控件 性能。