在展现列表时通常会用到分页 分页可以去引用ajax的封装包进行分页显示 也可以自己写一个分页
以下就是自己编写的分页
现在需要展现的框架内设置一个ID 再加上格式 再加上分页控件
class="row" id="imglist"><%--分页控件--%>class="row">class="col-md-12 text-right">
先引用一个正则 搜索需要取得值
//获取Url参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }
然后在开始写js
在开始编写后台代码 后台代码在ashx里边编写
////// 前台分页查询产品列表 /// /// public void GetQueryList(HttpContext context) { //声明一个动态类 初始化一个新的动态类方法 dynamic OnjJson = new ExpandoObject(); //取值 当前第几页 int page = Convert.ToInt32(context.Request["page"]); //取值 每页几条数据 int count = Convert.ToInt32(context.Request["count"]); //取值 当前的类型 string Type =context.Request["Type"]; //最小条数 int offset = (page - 1) * count; //声明一个新的BLL方法 Maticsoft.BLL.T_Products productsBll = new Maticsoft.BLL.T_Products(); //总条数从0开始 int total = 0; //返回数据的行数内容 OnjJson.rows = productsBll.GetQueryList(count, offset, Type, out total); //返回数据的总条数 OnjJson.total = total; context.Response.Write(JsonConvert.SerializeObject(OnjJson)); context.Response.End(); }
调用BLL方法
////// 前台分页查询产品数据 /// /// 条数 /// 最小条数 /// 产品的类型 /// 返回总条数 out返回(给后台一张纸(纸默认是空白的且不可以向后台传) 后台要把纸回给前台。纸上可以输出值) /// public DataTable GetQueryList(int limit, int offset, string Type, out int total) { return dal.GetQueryList(limit, offset, Type, out total); }
通过BLL调用dal方法 并使用SQL语句查询并返回查询到的数值
////// 前台分页查询产品数据 /// /// 条数 /// 最小条数 /// 产品的类型 /// 返回总条数 /// public DataTable GetQueryList(int limit, int offset, string Type, out int total) { //判断前台传过来的Type是否为空 如果为空则查询全部信息 如果有Type 则查询Type的信息 if(Type=="") { //使用sql语句分页查询数据 string sql = "select top (@limit) * from (select row_number() over(order by FId desc) as rownumber,* from T_Products ) temp_row where rownumber>@offset "; //计算数据总条数 string totalsql = "select COUNT(1) from T_Products "; total = Convert.ToInt32(SqlHelper.ExecuteScalar(SqlHelper.connStr, totalsql)); //使用键值对 对sql语句里的占位建进行替换 SqlParameter[] para = new SqlParameter[] { new SqlParameter("@limit",SqlDbType.Int), new SqlParameter("@offset",SqlDbType.Int), }; para[0].Value = limit; para[1].Value = offset; //返回一个Table return SqlHelper.ExecuteDataTable(SqlHelper.connStr, sql, para); } else { //有类型 就使用以下方法查询数据 //使用sql语句分页查询数据 string sql = "select top (@limit) * from (select row_number() over(order by FId desc) as rownumber,* from T_Products where Ftype=@Ftype) temp_row where rownumber>@offset "; //计算数据总条数 string totalsql = "select COUNT(1) from T_Products where Ftype=@Ftype"; total = Convert.ToInt32(SqlHelper.ExecuteScalar(SqlHelper.connStr, totalsql, new SqlParameter[] { new SqlParameter("@Ftype",Type) })); //使用键值对 对sql语句里的占位建进行替换 SqlParameter[] para = new SqlParameter[] { new SqlParameter("@limit",SqlDbType.Int), new SqlParameter("@offset",SqlDbType.Int), new SqlParameter("@Ftype",Type) }; para[0].Value = limit; para[1].Value = offset; para[2].Value = Type; //返回一个Table return SqlHelper.ExecuteDataTable(SqlHelper.connStr, sql, para); } }
最后将返回值填写到imgHtml = imgHtml + ’ ‘ 就可以了