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

感謝, Chandru

回答

0

我建議你將它添加到佔位符之前給出一個ID的文本框,例如讓我們說你給:yourTextBoxID

之後,在理論上你可以從你的Button2_Click事件做到這一點:

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

這會工作,但只有當你添加yourTextBoxID可以控制Page_Init中的所有時間,因爲如果您只在Button1_Click時執行此操作,那麼當點擊Button2觸發新頁面生命週期時,文本框很可能不會在那裏。

當然要進行測試和驗證;-)