2009-08-19 80 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的名字。