zoukankan      html  css  js  c++  java
  • DataReader结合aspnetpager分页

    以前一直使用DataTable与aspnetpager结合实现分页,今天测试一下DataReader
    前台

    代码
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CountRecordList.aspx.cs" Inherits="Office_CountRecordList" %>
    <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        
    <title>DataReader结合aspnetpager分页</title>
    </head>
    <body>
        
    <form id="form1" runat="server">
    <div>
    <table cellpadding="0" cellspacing="1">
        
    <tr class="meet_title bold">
            
    <td>用户单位</td>
        
    </tr>
        
    <asp:Repeater ID="rptList" runat="server" OnItemCommand="rptList_ItemCommand">
        
    <ItemTemplate>
        
    <tr style='background-color:<%#(Container.ItemIndex%2==0)?"#fff":"#eee"%>' class="meet_tr" onmouseover="fOver(this);" onmouseout="fOut(this);">
            
    <td style="height:30px;"><href='CountRecord.aspx?rid=<%#Eval("PID") %>'><%#Eval("UnitName")%></a></td>
        
    </tr>
        
    </ItemTemplate>
        
    </asp:Repeater>
        
    <tr>
            
    <td>
                
    <webdiyer:aspnetpager ID="AspNetPager1" runat="server" PageSize="20" OnPageChanged="AspNetPager1_PageChanged" 
        AlwaysShow
    ="True" CustomInfoHTML=" 当前第 <span style='color:red;'>%CurrentPageIndex%</span> 页,共 %PageCount%页" 
        FirstPageText
    ="首页" LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页" 
        ShowCustomInfoSection
    ="Right" Width="100%" BorderColor="#999999"  CssClass="anpager">  
        
    </webdiyer:aspnetpager> 
            
    </td>
        
    </tr>
    </table>
    </div>
        
    </form>
    </body>
    </html>
    后台
    代码
    protected void Page_Load(object sender, EventArgs e)
    {
        
    if (!IsPostBack)
        {
            AspNetPager1.RecordCount 
    = Convert.ToInt32(getTotal());
            Bind();
        }
    }
    private void Bind()
    {
        IDataReader dr 
    = getPagesData(Convert.ToInt32(AspNetPager1.PageSize), AspNetPager1.CurrentPageIndex - 1);
        rptList.DataSource 
    = dr;
        rptList.DataBind();
        dr.Close();
    }

    /// <summary>
    /// 取得总数
    /// </summary>
    /// <returns></returns>
    public string getTotal()
    {
        
    return LocalPub.ExecuteScalar("select count(*) as total from " + LocalPub.DBPrefix.Office + "t_CountRecord").ToString();
    }
    /// <summary>
    /// 根据当前页码,每页条数,取得相应数据。
    /// </summary>
    /// <param name="pageNum">每页显示条数</param>
    /// <param name="currentPage">当前页码</param>
    /// <returns></returns>
    public IDataReader getPagesData(int pageNum, int currentPage)
    {
        StringBuilder sb 
    = new StringBuilder();
        sb.Append(
    "select top " + pageNum + " * from t_CountRecord ");
        
    if (currentPage > 0)
            sb.Append(
    " where PID not in (select top " + pageNum * currentPage + " PID from t_CountRecord order by PID desc)");
        sb.Append(
    " order by PID desc");

        
    return LocalPub.ExecuteReader(sb.ToString());
    }
    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    {
        Bind();
    }
  • 相关阅读:
    eval()用法
    TTL查看目标的操作系统
    Windows Mobile里用SQLite的 Pinvoke DLL "SQLite.Interop.DLL 异常处理
    创建56个民族的sql语句
    RSS 入门简介
    NAT 网络地址转换
    ARP 攻击
    Python核心数据类型——列表
    Python核心数据类型——字符串
    Linux下 PyDev + Eclipse安装方法
  • 原文地址:https://www.cnblogs.com/greatverve/p/1620284.html
Copyright © 2011-2022 走看看