2011-10-26 44 views
-2

我们可以在“.vb”页面使用“.ascx”吗?用户控制代码

如您所知,我们可以使用.ascx,如“.aspx”。但我想知道如何从“.vb”中使用它?

+0

你想用它做什么? –

+0

有一个很长的结构,开始

and finished
约100行。如果id = 101,我将控制id,那么“该代码”将会出现在这里。没有面板的 – ToUpper

回答

2

是 - 你应该能够ASCX用户控件添加到VB页 -

Dim myControl As Control = CType(Page.LoadControl("UC1.ascx"), Control) 
Panel1.Controls.Add(myControl) 
+0

,我们不能使用? – ToUpper

+0

@ToUpper:UserControl的目的是在一个aspx页面上(或嵌套在其他Controls/UserControls中),所以是的,你应该将它添加到页面或页面上的控件。但是你并没有强迫你这样做,你可以将它加载到内存中并调用它的函数,而不必将其添加到页面的控件集合中。你需要的是jpr101答案的第一行。 –

0

您可以动态加载UserControl这样的:

Protected Sub Page_Load(sender As Object, evtArgs As EventArgs) 
    Dim loadedControl = LoadControl("~/path/to/your/ascx/file") 
    loadedControl.ID = "myLoadedControl" 
    anyPanel.Controls.Add(loadedControl) 
End Sub 
0

的的.ascx(网络控制)会通常在其中有其他网页控件(如asp:TextBox等)。您可以从.ascx.vb文件(由Visual Studio自动创建的部分类)访问这些文件。如果您想将这些控件和/或其属性公开给您放置.ascx Web控件的.aspx文件,则需要为它们创建公共属性。

例如:如果.ascx有一个名为“txtUserId”的asp:TextBox,并且您希望能够从.aspx页面获取/设置此文本框的Text属性,则可以添加以下内容:

Public Property UserIdText As String 
    Get 
     Return Me.txtUserID.Text 
    End Get 
    Set (value As String) 
     Me.txtUserId.Text = value 
    End Set 
End Property