2009-08-19 79 views
0

我在ascx頁面上有一個文本框和一個按鈕。回發後清除文本框

輸入文本後,我點擊它將發佈到數據庫的按鈕並清除文本框。

定位後,如果我刷新網頁,它將按鈕單擊方法並將舊文本發佈到數據庫。我如何清除視圖狀態下的文本框值。

我已經將文本框的enableviewstate設置爲false。但它仍然不起作用。請告訴我。由於

+0

子控件的EnableViewState被忽略。直到.NET 4.0才能運行。 – 2009-08-19 17:35:09

+0

您是否嘗試將您的文本框放入updatepanel中? – 2009-08-19 17:41:34

+0

當你說刷新,我假設你正在談論瀏覽器刷​​新,在這種情況下,我猜瀏覽器說,重新加載頁面一些數據必須回發?這是瀏覽器重複以前的帖子,讓你到你正在查看的頁面,這與ViewState沒有任何關係。如果你再次點擊該按鈕,這是一個不同的問題。這是什麼? – NerdFury 2009-08-19 17:51:27

回答

1
protected void Button_Click(object sender, EventArgs e) 
{ 
    var txt=textBox1.Text; 
    textBox1.Text="";//Set it to empty 

    // do other stuff 
    ............ 
    ............ 
} 
+1

建議使用string.Empty代替「」 – 2009-08-19 17:37:32

+0

這是我試過的。但它不起作用。 – vamsivanka 2009-08-19 17:37:53

+5

@Cedric Boivin誰推薦和爲什麼? – TheVillageIdiot 2009-08-19 18:15:51

0

後你點擊按鈕可以設置textbox.text =「保存數據」

編輯:您的評論之後textbox.text =「」不工作....

當你點擊刷新時,它聽起來像是再次重新提交你的工作。嘗試通過再次瀏覽您的頁面來重新加載頁面。

此外,請務必檢查您是否在每次回發中保存數據,但只保存按鈕單擊事件。

你的頁面加載事件中是否有任何代碼?

+0

嘗試過。它仍然具有舊的價值。 – vamsivanka 2009-08-19 17:42:04

1
protected void btnClear_Click(object sender, EventArgs e) 
    { 
     ClearControls(); 

    } 
    private void ClearControls() 
    { 
     foreach (Control c in Page.Controls) 
     { 
      foreach (Control ctrl in c.Controls) 
      { 
       if (ctrl is TextBox) 
       { 
        ((TextBox)ctrl).Text = string.Empty; 
       } 
      } 
     } 
    } 
+1

其工作完美 – 2013-06-25 14:15:05

0

遠投這裏,但這個工作在我的情況:

 TextBox.Attributes.Remove("value"); 

這與發送到「密碼」文本模式下的文本框中。

0

只是在活動結束後的頁面添加此我要Ø是刷新

Response.Redirect("Registration.aspx"); 

這裏我的WebForm的名字是「Registration.aspx」,而不是這把你的WebForm的名字。