【问题标题】:Accessing the value of a dynamically added Control inside Update panel访问更新面板中动态添加的控件的值
【发布时间】:2011-12-27 22:53:53
【问题描述】:

我有一个包含更新面板的页面,在其中,我们有一个 placeHolder,当按下 button1 时将填充一个文本框。

现在,当用户单击 Button2 时,我需要访问在文本框中输入的值。我正在努力寻找一个简单的解决方案来解决这个问题。

请找到下面的代码sn-p。

<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);
}

谢谢, 钱德鲁

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多