zoukankan      html  css  js  c++  java
  • 我的学习笔记,关于分页

    把数据库绑定在repeater上
    Repeater.DataSource=bll.getPageData(当前页,页数,)
    Repeater.bind();

    分页
    1.首先获取数据的总记录数
     public int GetRecordCount(int categoryId)
            {
                string sql = "select count(*) from Books";
                if (categoryId!=0)//编号为零查看所有的书
                {
                    sql = sql + " where categoryId=@categoryId";
                }
                return Convert.ToInt32(DbHelperSQL.GetSingle(sql,new SqlParameter("@categoryId",categoryId)));
            }
    2.根据总的记录数在bll层算出总的页数
    public int GetPageCount(int categoryId, int pageSize)
            {
                DAL.BookServices dal = new BookServices();
                int recordCount = dal.GetRecordCount(categoryId);
                return Convert.ToInt32(Math.Ceiling((double)recordCount / pageSize));
            }
    3.获得分页的数据(在dal层用分页的公式)(select * from (select ROW_NUMBER() over(order by id)as num, * from Books {0})as t where t.num>=@start and t.num<=@end)
     
    public DataSet GetPageData(int start, int end, int categoryId)
            {
                string sql = "select * from (select ROW_NUMBER() over(order by id)as num, * from Books {0})as t where t.num>=@start and t.num<=@end";
                sql =string.Format(sql,categoryId!=0?" where categoryId=@categoryId":"");
                SqlParameter[] parameters ={
                                               new SqlParameter("@start",start),
                                               new SqlParameter("@end",end),
                                               new SqlParameter("@categoryId",categoryId),
                                          };
                return DbHelperSQL.Query(sql,parameters);
            }
    4在bll层传入开始的页数和结束的页数,计算出开始的记录数和结束的记录数据返回一个model
     public List<Model.Book> GetPageData(int pageIndex, int pageSize, int categoryId)
            {
                int start = (pageIndex - 1) * pageSize + 1;//起始位置   
                int end = pageIndex * pageSize;//结束位置
                DAL.BookServices dal = new BookServices();
                DataSet ds = dal.GetPageData(start, end, categoryId);
                return DataTableToList(ds.Tables[0]);
            }
    5在UI层,传入一个当前页码(通过下一页和上一页进行控制pageindex,和一个页码的容量)把这些数据绑定到Repeater上。
    this.BookListRepeater.DataSource = bll.GetPageData(pageIndex, 10, categoryId);
     this.BookListRepeater.DataBind();

    在IU层注意的事项,1把ViewSate关闭EnableViewState="false"  可以防止网页的臃肿,或者直接不用asp.net的控件,,自己写html的空间进行submit的提交
                                 2需要手动写一个隐藏域,把当前的页码书存储起来返回给服务器。

  • 相关阅读:
    jvm 虚拟机参数_新生代内存分配
    jvm 虚拟机参数_堆内存分配
    Xshell 安装 Xftp
    使用 Xshell 连接 linux 系统
    linux 常用命令
    java JSON 和 Object 相互转换
    vsftp实现只能上传不能下载、删除权限配置
    从返回的HTTP Header信息中隐藏Apache的版本号及PHP的X-Powered-By信息
    在SecureCRT中无需输入密码登录Linux主机
    ssh 设置私钥实现两台linux主机无密码访问
  • 原文地址:https://www.cnblogs.com/shinelhui/p/2873237.html
Copyright © 2011-2022 走看看