我有一个包含更新面板的页面,在其中,我们有一个placeHolder,当按下button1时,它将填充一个文本框。
现在,当用户单击Button2时,我需要访问在文本框中输入的值。我正在努力找到解决这个问题的简单方法。
请查看以下代码段。
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:PlaceHolder ID="wplcHolder" runat="server"></asp:PlaceHolder>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" />
</div>
</form>
protected void Button1_Click(object sender, EventArgs e)
{
TextBox _txt = new TextBox();
wplcHolder.Controls.Add(_txt);
}
谢谢, Chandru
答案 0 :(得分:0)
我建议您在将文本框添加到占位符之前为文本框添加ID,例如,假设您提供:yourTextBoxID
之后,从理论上讲,您可以从Button2_Click
事件中执行此操作:
var myTextBox = (wplcHolder.FindControl("yourTextBoxID") as TextBox);
只有在Page_Init中一直添加yourTextBoxID
控件时才会有效,因为如果只通过点击{{1}触发新的页面生命周期,只能从Button1_Click
执行此操作很可能文本框不会出现在那里。
当然要经过测试和验证; - )