0

更新パネルを含むページがあり、その中には、button1 が押されたときにテキスト ボックスが入力される placeHolder があります。

ここで、ユーザーが 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 に答える