1

我已经动态添加了一个 WebUserControl,然后我想得到它,这是我的故事 :( 我不知道该怎么做,这是我的代码,在此先感谢,

 Protected Sub btngenerate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btngenerate.Click

    For Each Str As String In Tstring
        Dim addressControl As WebUC = CType(LoadControl("WebUC.ascx"), WebUC)

        addressControl.plbl.Text = Str
        form1.Controls.Add(addressControl)
    Next


End Sub



Protected Sub btnOk_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOk.Click


 'here is what i did , but it didn't work
 'For Each ct As WebUCIn form1.Controls
 ' ltlres.Text = ltlres.Text & ", " & ct.plbl.Text & " " & ct.ptxt.Text

 'Next

End Sub
4

2 回答 2

0

动态添加控件有一个规则。Init只要您需要它们,就必须重新添加它们。

只需在单击按钮时添加它们就会第一次显示它们,但您不会收到它们的任何输入。

您可以在会话中保留一个标志以表示必须添加它们Init

于 2013-02-24T12:26:57.830 回答
0

因为您动态添加了该控件,所以当您回发时,您需要再次添加它以使其 ViewState 和回发数据与之关联。

在事件中重新创建它Init,然后当您处理控件事件(如按钮单击)时,它将存在并且将与其相关联的数据(例如其子控件的内容)。

由于您将创建控件作为对另一个事件的响应,因此您需要在 Session 中保留某种标志(布尔值?计数器?),以便知道是否在Init.

于 2013-02-24T12:34:29.093 回答