3

我有一个 .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 方式是什么?

4

1 回答 1

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"%>
于 2013-03-04T18:37:35.490 回答