我动态添加了一个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
答案 0 :(得分:0)
有动态添加控件的规则。只要您需要,就必须将它们添加回Init
。
只需在点击按钮上添加它们就会在第一时间显示它们,但您不会从它们那里收到任何输入。
您可以在会话中保留一个标记,表示必须在Init
上添加
答案 1 :(得分:0)
因为您动态添加了该控件,所以当您回发时,您需要再次添加它以使其ViewState和回发数据与之关联。
在Init
事件中重新创建它,然后当您处理控制事件(如按钮点击)时,它将存在并且将具有与之关联的数据(例如其子控件的内容)。
由于您正在创建控件作为对另一个事件的响应,因此您需要在Session中保留某种标志(布尔值?计数器?)以了解是否在其上重新创建它Init
。