2012-11-08 73 views
1

請參閱下面的代碼:如何刪除動態控制值?

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div id="Div1" runat="server" /> 
    <asp:Button ID="Button1" runat="server" Text="Create a TextBox" /> 
    <asp:Button ID="Button2" runat="server" Text="Erase TextBox Text" /> 
    </form> 
</body> 
</html> 
.......................................... 
protected void Page_Load(object sender, EventArgs e) 
    { 
     if (IsPostBack) 
     { 
      if (Request.Params.ToString().IndexOf("Button1") > 0) 
      { 
       CreateTextBox(); 
      } 
      else 
      { 
       if (Request.Params.ToString().IndexOf("Button2") > 0) 
       { 
        TextBox txtbx = CreateTextBox(); 
        txtbx.Text = ""; 
       } 
      } 
     }   
    } 

    TextBox CreateTextBox() 
    { 
     TextBox txtbx = new TextBox(); 
     Div1.Controls.Add(txtbx); 

     return txtbx; 
    } 

在回發,我檢查,如果 'Button1的' 或 'Button2的' 被按下。

我按Button1並且動態創建TextBox。
我在文本框中輸入一些文本,然後再次按下Button1。 TextBox被重新創建,我輸入的文本保留在PostBack上。

當我按Button2,我想重新創建文本框,但我想刪除先前輸入的文本。但即使我已指定txtbx.Text =「」後回傳後仍保留文本。

如何重新創建文本框但刪除輸入的文本?
(我希望文字被保留,如果我推Button1的,但如果我把Button2的)

謝謝。

回答

1

page load上,您的上下文尚未恢復。如果要覆蓋控件的狀態值,請處理每個按鈕的事件,並相應地執行邏輯。