现在的位置: 首页 > 综合 > 正文

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

2012年02月17日 ⁄ 综合 ⁄ 共 525字 ⁄ 字号 评论关闭

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

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();郁闷了好长时间,写出来,提醒一下其他的朋友。

抱歉!评论已关闭.