在“更新”面板中访问动态添加的控件的值

时间:2011-11-13 07:15:31

标签: asp.net dynamic-controls data-retrieval partial-postback updatepanel

我有一个包含更新面板的页面,在其中,我们有一个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

1 个答案:

答案 0 :(得分:0)

我建议您在将文本框添加到占位符之前为文本框添加ID,例如,假设您提供:yourTextBoxID

之后,从理论上讲,您可以从Button2_Click事件中执行此操作:

var myTextBox = (wplcHolder.FindControl("yourTextBoxID") as TextBox);

只有在Page_Init中一直添加yourTextBoxID控件时才会有效,因为如果只通过点击{{1}触发新的页面生命周期,只能从Button1_Click执行此操作很可能文本框不会出现在那里。

当然要经过测试和验证; - )

相关问题