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();
    }
  • 相关阅读:
    DataAnnotations
    使用BizTalk实现RosettaNet B2B So Easy
    biztalk rosettanet 自定义 pip code
    Debatching(Splitting) XML Message in Orchestration using DefaultPipeline
    Modifying namespace in XML document programmatically
    IIS各个版本中你需要知道的那些事儿
    关于IHttpModule的相关知识总结
    开发设计的一些思想总结
    《ASP.NET SignalR系列》第五课 在MVC中使用SignalR
    《ASP.NET SignalR系列》第四课 SignalR自托管(不用IIS)
  • 原文地址:https://www.cnblogs.com/greatverve/p/1620284.html
Copyright © 2011-2022 走看看