更新textBox ASP.NET时出现问题

时间:2010-06-01 23:38:44

标签: asp.net textbox

我从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中加载的文本,如何更新文本框中的文本?

2 个答案:

答案 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中的代码。