今天在做一个更新的功能的时候,老是更新不了数据。设置断点跟踪了一下,发现了这个问题。
先看代码:
protected void Page_Load(object sender, EventArgs e)
{
//没有加IsPostBack之前,Teacher.Update(txtName.Text);这里的txtName.Text永远不变,
//因为是先执行Bind()再执行btnOk_Click();
if (!IsPostBack)
Bind();
}
private void Bind()
{
txtName.Text = "hello";
}
protected void btnOk_Click(object sender, EventArgs e)
{
Teacher.Update(txtName.Text);
}
{
//没有加IsPostBack之前,Teacher.Update(txtName.Text);这里的txtName.Text永远不变,
//因为是先执行Bind()再执行btnOk_Click();
if (!IsPostBack)
Bind();
}
private void Bind()
{
txtName.Text = "hello";
}
protected void btnOk_Click(object sender, EventArgs e)
{
Teacher.Update(txtName.Text);
}
当我点更新按钮的时候,数据总是没有变化,索性改成Teacher.Update("hi");可以更新。
真的奇怪了,设了个断点一调试,发现原来在没有加IsPostBack判断的时候,是先执行Page_Load();
然后才执行btnOk_Click();郁闷了好长时间,写出来,提醒一下其他的朋友。