0

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

谢谢,钱德鲁

4

1 回答 1

0

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

在那之后,理论上你可以从你的Button2_Click活动中做到这一点:

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

这将起作用,但yourTextBoxID前提是您始终在 Page_Init 中添加控件,因为如果您仅在Button1_Click通过单击触发新页面生命周期时执行此操作,Button2则文本框很可能不存在。

当然,所有这些都需要测试和验证;-)

于 2011-11-13T12:22:42.267 回答