• 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();
    }
  • 相关阅读:
    Android Gradle Plugin指南(五)——Build Variants(构建变种版本号)
    文件内容操作篇clearerr fclose fdopen feof fflush fgetc fgets fileno fopen fputc fputs fread freopen fseek ftell fwrite getc getchar gets
    文件操作篇 close creat dup dup2 fcntl flock fsync lseek mkstemp open read sync write
    嵌入式linux应用程序调试方法
    version control system:git/hg/subversion/cvs/clearcase/vss。software configruation management。代码集成CI:Cruisecontrol/hudson/buildbot
    最值得你所关注的10个C语言开源项目
    如何记录linux终端下的操作日志
    CentOS 5.5 虚拟机安装 VirtualBox 客户端增强功能
    sizeof, strlen区别
    C/C++嵌入式开发面试题
  • 原文地址:https://www.cnblogs.com/greatverve/p/1620284.html
Copyright © 2020-2023  润新知