Asp.net分页控件动态加载

分类: asp.net   出处:iocblog整理  更新时间:2009-06-26   添加到收藏  

    在asp.net中动态加载控件比较简单,这里我讲得是对用户控件的加载,比较典型的就是被加载的用户控件里面包含回发事件,在回传回来的时候需要保持新的数据。

    先来构建分页用户控件,由于前面几篇文章都在讲这些东西,所以就直接拿过来改了改,分页代码可以查看上面的文章1,文章2,下面是用户控件的一部分代码。

public class pagingcontrol : system.web.ui.usercontrol

{

     private int pagecount;

     private int recordcount;

     ……

     private void page_load(object sender, system.eventargs e)

     {

         if(!page.ispostback)

         {

              datagriddatabind();

         }

     }

     //绑定数据

     private void datagriddatabind()

     {

         dataset ds = getcustomersdata(pageindex,pagesize,ref recordcount,ref pagecount);

         this.datagrid1.virtualitemcount = recordcount;

         this.datagrid1.datasource = ds;

         this.datagrid1.databind();

         setpagingstate();

     }

     //绑定新的页面

private void lbtnnavigation_click(object sender, system.eventargs e)

     {

         linkbutton btn = (linkbutton)sender;

         switch(btn.commandname)

         {

              case "first":

                   pageindex = 0;

                   break;

              case "prev":

                   pageindex = pageindex - 1;

                   break;

              case "next":

                   pageindex = pageindex + 1;

                   break;

              case "last":

                   pageindex = pagecount - 1;

                   break;

         }

         datagriddatabind();

     }

……

}

    在上面我们注意到在页面load事件中判断if(!page.ispostback)来防止在回发加载的时候进行两次绑定,因为第一次完全没有必要,最终由lbtnnavigation_click中的绑定决定。

    假设pagingcontrol.ascx为上面的用户控件的文件名,而且同page页面文件在同一目录,下面是aspnetcommonpaging.aspx文件的代码,为了动态加载,在页面上放了一个placeholder控件来加载先前的用户控件。

    前台文件如下:

<%@ page language="c#" codebehind="aspnetcommonpaging.aspx.cs" autoeventwireup="false" inherits="aspnetpaging.aspnetcommonpaging" %>

<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >[www.iocblog.net 来源]

<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>

[1] [2] 下一页



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。