2011-10-26 84 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