打印本文 打印本文 关闭窗口 关闭窗口
动态加载Asp.net分页控件
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2097  更新时间:2009/4/23 10:43:43  文章录入:mintao  责任编辑:mintao
3C//DTD HTML 4.0 Transitional//EN" >

<HTML>

  <HEAD>

                   <title>AspnetCommonPaging</title>                  

  </HEAD>

         <body>

                   <form id="Form1" method="post" runat="server">

<asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder>

                   </form>

         </body>

</HTML>

后台代码文件也比较简单:

namespace AspnetPaging

{

     public class AspnetCommonPaging : System.Web.UI.Page

     {

         protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;

    

         private void Page_Load(object sender, System.EventArgs e)

         {

              PlaceHolder1.Controls.Add(Page.LoadControl("~/PagingControl.ascx"));

         }

 

         #region Web 窗体设计器生成的代码

         override protected void OnInit(EventArgs e)

         {

              InitializeComponent();

              base.OnInit(e);

         }

        

         /// <summary>

         /// 设计器支持所需的方法 - 不要使用代码编辑器修改

         /// 此方法的内容。

         /// </summary>

         private void InitializeComponent()

         {   

              this.Load += new System.EventHandler(this.Page_Load);

         }

         #endregion

     }

}

 

这里的PlaceHolder1.Controls.Add(Page.LoadControl("~/PagingControl.ascx"));就是把PagingControl用户控件载到当前页面上来。如果不想用PlaceHolder,我们也可以使用其他容器控件,只要添加到Controls集合就行了。

注意这里如果按下面这样处理,那面在页面回发的时候就会不被加载,那么也就不会触发分页事件。

private void Page_Load(object sender, System.EventArgs e)

{

     if(!Page.IsPostBack)

         PlaceHolder1.Controls.Add(Page.LoadControl("~/PagingControl.ascx"));

}

现在让我们来看看主要事件的执行顺序:设置断点,得到下面的顺序。

第一次:页面OnInit事件-->页面Page_Load事件à控件OnInit事件à控件Page_Load事件。

翻页回发:页面OnInit事件-->页面Page_Load事件à控件OnInit事件à控件Page_Load事件à LBtnNavigation_Click翻页事件。

如果我们把页面加载代码放在页面OnInit事件:

override protected void OnInit(EventArgs e)

{

     InitializeComponent();

     PlaceHolder1.Controls.Add(Page.LoadControl("~/PagingControl.ascx"));

     base.OnInit(e);

}

那么事件的执行顺序会是什么样呢?

第一次:页面OnInit事件-->控件OnInit事件à页面Page_Load事件à控件Page_Load事件。

翻页回发:页面OnInit事件-->控件OnInit事件à页面Page_Load事件à控件Page_Load事

上一页  [1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口