asp.net中实现分页

使用空降AspNetPager.dll   http://download1.csdn.net/down3/20070608/08120841823.rar

页面头加上<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>

分页部分

  <webdiyer:aspnetpager id="AspNetPager1" runat="server" horizontalalign="Left" onpagechanged="AspNetPager1_PageChanged"
        showcustominfosection="Left" width="37%" meta:resourceKey="AspNetPager1" style='font-size:12px' InputBoxStyle='width:19px'
         FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页"></webdiyer:aspnetpager>
  

cs中代码:

初始化时:首先查询取得记录总条数Count;

 然后设置

     AspNetPager1.RecordCount = Count;
        AspNetPager1.PageSize = pageSize;
        AspNetPager1.AlwaysShow = true;

另外如果你取得记录数据比较多的话 ;建议你最好dao那一块使用存储过程分页,这样返回来记录数比较少,速度也快而且占有内存极少

前端传入的页面显示条数及当前页数分别为AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex

 

  protected void AspNetPager1_PageChanged(object src, EventArgs e)
    {


               //调用后台查询方法 其中页面显示条数及当前页数分别为AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex;
    }

 

关于datagrid实现分页 可以参考下面代码

页面部分

<asp:datagrid id="dgLabour" runat="server" AutoGenerateColumns="False" DataKeyField="ID" CellPadding="3"
       BorderColor="White" BackColor="#E6E6E6" AllowPaging="True" PageSize="8" Width="100%">
       <AlternatingItemStyle BackColor="#A4A3A3"></AlternatingItemStyle>
       <ItemStyle Height="20px"></ItemStyle>
       <HeaderStyle Font-Bold="True" Height="23px" Width="40px" BackColor="#FFCC00"></HeaderStyle>
       <Columns>

          ......

      </Columns>
       <PagerStyle NextPageText="下一页&amp;gt;" PrevPageText="&amp;lt;上一页"></PagerStyle>
      </asp:datagrid>

后台代码:

     private void dgLabour_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {  
//   this.dgLabour.CurrentPageIndex = e.NewPageIndex;
//   BindGridLabour();//重新读取数据并填充到datagrid
   this.dgLabour.EditItemIndex=-1;
   if (e.NewPageIndex >=0 && e.NewPageIndex < dgLabour.PageCount)
   {
    this.dgLabour.CurrentPageIndex = e.NewPageIndex;
    BindGridLabour();//重新读取数据并填充到datagrid
   }
  
  }

 

如果结合存储过程分页代码如下

<asp:DataGrid  ID="partnerList" DataKeyField="partnerID" runat="Server"  BorderWidth="0" cellspacing="1" cellpadding="3"  BackColor="#0000F5"
          Font-Size="12px" GridLines="None" HorizontalAlign="Center" AutoGenerateColumns="False"  Width="100%" OnItemCommand="partnerList_ItemCommand" OnItemDataBound="partnerList_ItemDataBound">
          <ItemStyle BackColor="White" Font-Bold="False" Font-Italic="False" Font-Overline="False"
            Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center" />
          <HeaderStyle BackColor="#B3D9FF" Font-Bold="False" Font-Italic="False" Font-Overline="False"
            Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center" />
            <Columns>

......

 </Columns>
          </asp:DataGrid>

 

第<asp:DropDownList ID="ddlCurrentPage" runat="server" AutoPostBack="true" Width="38px" OnSelectedIndexChanged="ddlCurrentPage_SelectedIndexChanged">
             </asp:DropDownList>页/总共
             <asp:Label ID="lblpageNum" runat="server" Text="1"></asp:Label>页

//说明:其中ddlCurrentPage中的数据为页数(1......n)

cs代码

 private void DataGrid(string PageIndex, bool flag)
    {

        。。。。。。
        DataSet ds = biz.GetAllPartner(usufruct,nPageSize.ToString(),PageIndex,sortType,0);//nPageSize每页显示条数;PageIndex当前页数
        if (flag == true)//需要初始化
        {
            DdlPageInit(biz, usufruct, sortType);
        }
        partnerList.DataSource = ds;       
        partnerList.DataBind();
        int nPage = partnerList.CurrentPageIndex;
        for (int i = 0; i < partnerList.Items.Count; i++)
        {
            int id = nPage * nPageSize + i + 1;
            partnerList.Items[i].Cells[0].Text = id.ToString();
        }
    }

 private void DdlPageInit(bizPartner biz,int usufruct, string sortType)
    {
        int RowCount = 0;//总记录数

               //取得记录总条数并计算总页数

        ddlCurrentPage.Items.Clear();
            for (int j = 1; j <= PageCount; j++)//PageCount总页数
            {
                ddlCurrentPage.Items.Add(new ListItem(Convert.ToString(j), Convert.ToString(j-1)));
            }

           lblpageNum.Text = Convert.ToString(PageCount);
      }

 

 protected void ddlCurrentPage_SelectedIndexChanged(object sender, EventArgs e)
    {
             string pageIndex = ddlCurrentPage.SelectedItem.Text;
             DataGrid(pageIndex, false);
     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值