先写了一个用户控件A,里面有一个TextBox和一个Button,后台代码中有如下属性
Public Property Str1() As String
        Get
            Return TextBox1.Text
        End Get
        Set(ByVal Value As String)
            TextBox1.Text = Value
        End Set
End Property现在又有一个用户控件B,直接把用户控件A拖入B中,后台代码如下
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
        Dim dc As A = CType(FindControl("DateCtrl1"), A)
        Response.Write(dc.Str1)
End Sub最后新建一个WebForm,用2种方法将B用户控件加入该页面
1.直接将b拖入页面,运行时在TextBox中输入内容,提交以后页面有显示
2.用动态的方法载入B控件private dc as BPrivate Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码        dc = CType(Me.LoadControl("DateCtrl2.ascx"), B)
        PlaceHolder1.Controls.Add(dc)End Sub
但是每次输入内容,提交以后页面不显示输入的内容现在要让第二种方法能正常工作,怎么办

解决方案 »

  1.   

    先不看你的情况为什么不能输出,此类结构你应该这样写:B的后台代码中:protected DateCtrl1 as APrivate Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            Response.Write(DateCtrl1.Str1)
    End Sub
      

  2.   

    因为是动态生成控件,从客户端返回的值无法在Page_Load里设置,在某个按钮里事件里查看,或Private Sub Page_PreRender(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.PreRender
            Dim dc As A = CType(FindControl("DateCtrl1"), A)
            Response.Write(dc.Str1)
    End Sub