获取自动创建的webuserControl值

时间:2013-02-24 12:24:11

标签: asp.net vb.net

我动态添加了一个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

2 个答案:

答案 0 :(得分:0)

有动态添加控件的规则。只要您需要,就必须将它们添加回Init

只需在点击按钮上添加它们就会在第一时间显示它们,但您不会从它们那里收到任何输入。

您可以在会话中保留一个标记,表示必须在Init上添加

答案 1 :(得分:0)

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

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

由于您正在创建控件作为对另一个事件的响应,因此您需要在Session中保留某种标志(布尔值?计数器?)以了解是否在其上重新创建它Init