我们先把子sql存储过程拿出来
分页存储过程。
代码如下 | 复制代码 |
CREATE PROCEDURE [dbo].[proc_SplitPage] set @strSQL= pos,'+@strFields+' '+
|
下面是个分页类pager{}
代码如下 | 复制代码 |
public class Pager private string _prePageText; private string _nextPageText; private string _lastPageText; /// private int _pagesize=15; private int _pageIndex=1; private int _maxShowPageSize = 10; private string _queryStringName; /// 径 径 如果存在page=*的字符串 RegexOptions.IgnoreCase);//替换掉page=*的字符串 private bool _enableUrlRewriting; /// EnableUrlRewriting属性设为true private string _className; private string _currentPageCss; private bool _showSpanText; private string _spanTextClass; private string _submitButtonText; _submitButtonText; |
分页显示html代码的拼接方法:
代码如下 | 复制代码 |
public class SplitManager n", pager.ClassName); ");//attr=pager.PageIndex==1?"disabled=disabled":"";//标志当前页第一页是否相等 来控 制前俩个按钮的有效性 (pager.URL,1),pager.FirstPageText));//添加最前一页的代码 pager.PrePageText));//添加上一页的代码 pagecount;//清除当 当前页数为分页页码数的整数倍页时除数多一的状况 pageNum:pager.MaxShowPageSize * (pagecount + 1); 再前端... pager.MaxShowPageSize * pagecount), "...")); ())); 第二页页码时显示在后端... pager.MaxShowPageSize * (pagecount + 1) + 1), "...")); 一页是否相等 来控制后俩个按钮的有效性 pager.NextPageText));//添加后一页的代码 pager.LastPageText));//添加最后一页的代码 {1}条记录 n", pageNum, pager.PageSize); style="width:20px;" name="jump" value="{0}" />页", pager.PageIndex == pageNum ? pageNum : pager.PageIndex + 1); onclick="javascript:jump();">" + pager.SubmitButtonText + " return sb.ToString(); } /// /// /// } |
最精简必要的几个参数传进去就能显示分页效果了:
代码如下 | 复制代码 |
protected string str = ""; } 供测试的css: |
同时配合为了配合分页,再给出一个DataTable转泛型列表的一个方法和一个分页存储过程。
此转换方法需配合相应的实体类,并且实体类中需对象相应表的字段名,不区分大小写。
代码如下 | 复制代码 |
#region DataTable To List/Model /// (BindingFlags.IgnoreCase|BindingFlags.Instance|BindingFlags.Public|BindingFlags.SetPropert y); //get the collections of the model where T : new() |
好了,这样就全部KO了。