我从asp.net开始,遇到一些我不明白的问题。问题是,我正在建立新闻网站。每条新闻都有标题和正文。我有一个页面,我可以插入新闻,此页面使用每个字段(标题和正文)的文本框,单击提交按钮后一切正常,并将值保存在数据库中。 o有另一个页面我可以阅读新闻,我为每个阵营使用标签,这些标签在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中加载的文本,如何更新文本框中的文本?
答案 0 :(得分:5)
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 ";
}
}
答案 1 :(得分:0)
听起来你需要像这样检查IsPostBack变量:
if(!Page.IsPostBack)
{
textboxTitle.Text = "This is the title of the news";
textboxBody.Text = "This is the body of the news ";
}
这样,您只需在第一页请求上设置控件的文本。或者,您可以在HTML控件本身上指定此文本,而无需使用.cs中的代码。