分页之C#封装存储过程(site,bll,dal)

DAL层:

public DataTable GetDataByPage(int pageIndex,int pageSize,out int totalcount)

{

 totalcount=0;

 //1.0 定义存储过程的名字,一定是在数据库存在的存储过程

 string prodname="USP_GetListByPage";

 //2.0 定义存储过程需要的参数数组

 SqlParameter[] params=new SqlParameter[]{

  new SqlParameter("@pageIndex",pageIndex),

  new SqlParameter("@pageSize",pageSize),

  new SqlParameter("@totalcount",totalcount)

};

 //3.0 由于totalcount在存储过程中的参数类型为OUTPUT,所以在此要增加对其的描述

 params[2].Direction=ParameterDirection.Output;

 //4.0 开始执行,注意执行一定是在获取params[2].Value之前运行,否则获取不到真正的符合条件的数据行数totalcount

 DataSet dt=DbHelperSQL.RunProcedure(prodname,params,"list");

 if(params[2].Value!=null)

{

  totalcount=int.Parse(params[2].Value.ToString());

}

 return ds.Tables[0];

}

 

BLL层:

public List<表实体>   GetListByPage(int pageIndex,int pageSize,out int totalcount)

{

  DataTable dt=dal.GetListByPage(pageIndex,pageSize,out totalcount);

  return DataTableToList(dt);

}

 

Site层:

public void GetListByPage()

{

    //1.0 接受ajax请求或者url请求传递过来的参数

    string pageIndex=Request.QueryString["pageIndex"];

    string pageSize=Request.Querystrinig["pageSize"];

    //2.0 参数合法性验证,判断是否为Int

    ..........

    //3.0 把pageIndex和pageSize转为int,作为参数传递

    int ipageIndex=int.Parse(pageIndex);

    int ipageSize=int.Parse(pageSize);

    int totalcount=0;

    //4.0 调用bll层的分页方法

    List<表实体> list =  bll.GetDataListByPage(ipageIndex,ipageSize,out totalcount);

    

    --在这里有一个问题,我肯定要返回list给前端,但是还要返回totalcount这个总行数,还是返回totalcount/pagesize=总页数,这我就说不定了,这是就要开始

    --研究我们的分页控件了。

举例:jPageinate 分页控件

分页控件的使用,看下编文章

    //5.0 根据totalcount 和 pagesize 计算出总页数,由于计算有可能是小数,所以应该取得大于此小数的最小整数,如10.1 ,应该取11

    decimal totalpage=Math.Ceiling(totalcount / Convert.ToDecimal(ipageSize.ToString()));//因为Math.Ceiling()只能接受double或者decimal参数

   //6.0 将数据集合和分页的相关参数响应回给异步对象

    AjaxPage obj=new AjaxPage();

   obj.status="成功";

   obj.datas=list;

   obj.totalcount=totalcount;

   obj.totalpage=totalpage;

  //6.0 利用json序列化器,把obj这个分页实体序列化,返回给异步对象

   return calback+"序列化分页实体";

}

 

posted @ 2014-11-11 22:30  沉住气埋头苦干  阅读(435)  评论(0编辑  收藏  举报