等效负载控制

时间:2013-03-04 17:34:11

标签: vb.net ascx

我有一个.ascx文件,我可以使用

加载没问题
<uc1:EL ID="EL1" BusinessID="8" runat="server" />

BusinessID是公共财产的地方。

Public Property BusinessID As Integer
    Set(ByVal value As Integer)
        _BusinessID = value
    End Set
    Get
        Return _BusinessID
    End Get
End Property

我可能需要多次将此ascx文件加载到具有不同BusinessID变量值的占位符中。

这样做的等效LoadControl方式是什么?

1 个答案:

答案 0 :(得分:2)

首先,您需要创建用户控件的实例,然后获取占位符的句柄。然后你可以添加一个到另一个。例如:

 'get place holder
 Dim getPh As New PlaceHolder
 getPh = CType(Me.FindControl("myPlaceHolder"), PlaceHolder)

 'get user controls    
 Dim newUserControl As New user_controls_myControlName
 newUserControl = CType(LoadControl("~/user_controls/myControlName.ascx"), user_controls_myControlName)    

 getPh.Controls.Add(newPortlet)

创建用户控件的实例后,您可以访问其所有属性,包括BusinessID,您可以随意分配它。

忘了一件事,你需要在你的ascx文件的客户端代码中添加一个引用,如下所示:

<%@ Reference Control="~/user_controls/myControlName.ascx"%>