把變數傳到ASP.Net的使用者控制項(.ascx) for 網站模式

之前這篇文章有說怎麼在專案模式中對使用者控制項傳參數進去。

但是同樣的方法在網站模式就不適用了,要動一點小手腳,

這是因為網站模式的Class程式碼都放在App_Code中集中管理,

也就是說,如果你的Class是放在App_Code以外的地方,是讀不到的。

要解決此問題首先我們建立一個Class放在App_Code

而此Class內含1個屬性(Property)做為我們測試要傳變數的地方

Imports Microsoft.VisualBasic

Public Class KClass
    Inherits System.Web.UI.UserControl

    Private _p1 As String
    Public Property P1() As String
        Get
            Return _p1
        End Get
        Set(ByVal value As String)
            _p1 = value
        End Set
    End Property
End Class

然後再到使用者控制項的程式碼中修改為繼承我們剛才新增的Class就可以了


Partial Class uc
    Inherits KClass

    Protected Sub Page_Load _
                   (ByVal sender As Object, _
                    ByVal e As System.EventArgs) _
                   Handles Me.Load
        Response.Write(P1)
    End Sub
End Class

而傳遞參數的方式則跟專案模式的一樣


Dim x As KClass = _
CType(LoadControl("uc.ascx"), KClass)
x.P1 = "測試文字"
Me.Controls.Add(x)

如果你是使用專案模式開發ASP.Net的請到這邊

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *