还有
加下面这段。 private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid1.CurrentPageIndex = e.NewPageIndex;
this.DataGrid1.DataBind();
}当客户端点击翻页以后,又会按什么顺序执行哪些方法??代码意义不用解释,我只需要问执行顺序。谢谢!

解决方案 »

  1.   

    首先执行Page_Load(),而Page_Load()里边又调用  InitializeComponent()。DataGrid1_PageIndexChanged()是事件驱动的,只有触发了这个事件,才会调用。
      

  2.   

    To mongtze(廉价的程序员) 主要有,
    private void Page_Load(object sender, System.EventArgs e){。。}
    override protected void OnInit(EventArgs e){

    InitializeComponent();
                      
    }private void InitializeComponent(){}private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e){。。}我的理解是:
    第一次访问时
    OnInit()====>(调用了)InitializeComponent()==>返回OnInit()====>Page_Load()
    当点了翻页后:
    OnInit()====>(调用了)InitializeComponent()==>返回OnInit()====>Page_Load()
    ===>
    最后才执行翻页事件指的方法DataGrid1_PageIndexChanged()请问我的理解正确吗??
      

  3.   

    好象asp.net里面无论是什么事件或调用了什么函数,Page_Load都是最先被执行的。
    哪怕因为有别的控件触发了事件引起了回传也是先执行Page_Load而不是先执行触发的事件函数。
    也就是说,如果在Page_Load里设置了某个控件的值,而这个控件被触发后引起了回传,触发事件里又要用到这个控件的值,这事就会导致因为Page_Load先执行而把那个控件的值恢复到原来的值,事件触发函数得到的控件参数就是不正确的。
    比如:
    void Page_Load()
    {
      txt.Text="a";
    }
    void btn_Click()
    {
      Response.Write(txt.Text);
    }
    ---------------
    <asp:TextBox id="txt" runat="server"/>
    <asp:Button id="btn" OnClick="btn_Click" runat="server"/>
    这个时候无论txt里填写什么值,只要点了button一回传,Response.Write出来的都是"a",因为Page_Load先执行,所以txt也就被置回"a"了。
      

  4.   

    我知道了,我的理解没有错:其实想证明很简单
    只要在每个函数的第一行加入Response.Write (现在执行XXXX函数)
    执行一次就可以了,哈哈!就这么简单,我还来问别人结论:
    我的理解是:
    第一次访问时
    OnInit()====>(调用了)InitializeComponent()==>返回OnInit()====>Page_Load()
    当点了翻页后:
    OnInit()====>(调用了)InitializeComponent()==>返回OnInit()====>Page_Load()
    ===>
    最后才执行翻页事件指的方法DataGrid1_PageIndexChanged()