更新文本框 ASP.NET 时出现问题

Posted

技术标签:

【中文标题】更新文本框 ASP.NET 时出现问题【英文标题】:Problems updating a textBox ASP.NET 【发布时间】:2010-06-01 23:38:44 【问题描述】:

我从 asp.net 开始,遇到了一些我不明白的问题。问题是,我正在建立一个新闻网站。每条新闻都有标题和正文。我有一个可以插入新闻的页面,该页面对每个字段(标题和正文)使用一个文本框,单击提交按钮后一切正常并将值保存在数据库中。并且还有另一个页面可以阅读新闻,我为每个营地使用标签,这些标签在 Page_Load 中定义。现在我在可以编辑新闻的页面上遇到问题。我在 Page_Load 中加载了两个文本框(标题和正文),到目前为止一切都很好,但是当我更改文本并单击提交按钮时,它会忽略我在文本中所做的更改并保存在 Page_Load 中加载的文本.

这段代码没有显示任何数据库连接,但你可以理解我在说什么。

protected void Page_Load(object sender, EventArgs e)
               
        textboxTitle.Text = "This is the title of the news";       
        textboxBody.Text = "This is the body of the news ";        
    

我加载页面,在文本中进行更改,然后点击提交。

protected void btnSubmit_Click(object sender, EventArgs e)
    
        String title = textboxTitle.Text;        
        String body = textboxBody.Text;
        Response.Write("Title: " + title + " || ");
        Response.Write("Body: " + body );
    

什么也没发生,文本框中的文本始终是我在 page_load 中加载的文本,如何更新文本框中的文本?

【问题讨论】:

【参考方案1】:

Page_Load 会在每次请求您的页面时运行。如果您正在执行一次性设置操作来填充文本框,请不要在每次请求时重新填充它们。

您可以通过检查IsPostBack 标志来做到这一点,只执行一次初始化代码。

protected void Page_Load(object sender, EventArgs e)
               
        if (!Page.IsPostBack)
         
            textboxTitle.Text = "This is the title of the news";       
            textboxBody.Text = "This is the body of the news ";        
         
    

【讨论】:

【参考方案2】:

听起来您需要像这样检查 IsPostBack 变量:

if(!Page.IsPostBack)

    textboxTitle.Text = "This is the title of the news";       
    textboxBody.Text = "This is the body of the news ";

这样,您只需在第一页请求中设置控件的文本。或者,您可以只在 html 控件本身上指定此文本,而无需使用 .cs 中的代码。

【讨论】:

以上是关于更新文本框 ASP.NET 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

当 TextMode=Password 时 ASP.NET 文本框大小不同

如何将asp.net文本框滚动到底部

不使用 AJAX AutoCompleteExtender 和 Web 服务的 ASP.Net 中的自动完成文本框

asp.net如何给密码文本框加上小眼睛

输入搜索栏文本框时出现 UISearchBar 错误

Asp.Net,UpdatePanel 中的文本框文本更改问题