我在按钮单击时创建动态文本框,然后在另一个按钮单击时显示值。它工作正常,直到我使用ajax updatepanel。在那种情况下,当我按下第二个按钮时,不显示值。我的aspx代码是:
aspx标记是:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="divRT" runat="server">
</div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnAccessValues" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="lbnAddNew" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<div>
<asp:Button ID="btnAccessValues" Text="save" runat="Server" OnClick="btnAccessValues_Click" />
<br />
<br />
</div>
显示值的代码。
Protected Sub btnAccessValues_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnAccessValues.Click
If ViewState(strVS_DynamicIds) IsNot Nothing Then
Dim lstDynId As List(Of String) = DirectCast(ViewState(strVS_DynamicIds), List(Of String))
For Each strId As String In lstDynId
Dim tbx As TextBox = DirectCast(divRT.FindControl(strId), TextBox)
Response.Write(tbx.Text)
Label1.Text = tbx.Text
Next
End If
End Sub
我使用这篇文章作为参考:
http://www.c-sharpcorner.com/uploadfile/abhijeetsinghai/creating-textboxes-dynamically-at-runtime/
请建议解决方案。
此致 Asif Hameed
答案 0 :(得分:0)
你必须在每个帖子上重新创建动态添加的控件。 所以要么在Page_Init或Page_Load中重新创建它们。
答案 1 :(得分:0)
当我尝试实现你的场景时,我发现的唯一问题是触发器,所以注释会在你的代码中触发,然后再试一次
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="divRT" runat="server">
</div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<div>
<asp:Button ID="btnAccessValues" Text="save" runat="Server" OnClick="btnAccessValues_Click" />
<br />
<br />
</div>