更新文本框 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 文本框大小不同