asp.net的一个重要发现(Page_Load()的执行次序先控件的事件函数)。

今天在做一个更新的功能的时候,老是更新不了数据。设置断点跟踪了一下,发现了这个问题。
先看代码:

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);
}

当我点更新按钮的时候,数据总是没有变化,索性改成Teacher.Update("hi");可以更新。
真的奇怪了,设了个断点一调试,发现原来在没有加IsPostBack判断的时候,是先执行Page_Load();
然后才执行btnOk_Click();郁闷了好长时间,写出来,提醒一下其他的朋友。

posted @ 2009-07-01 14:52  大气象  阅读(1145)  评论(1编辑  收藏  举报
http://www.tianqiweiqi.com