--------------------------------------第一種:利用動軟代碼生成器生成的分頁------------------------------------
//新建一個一般處理程序
pageIndex = int.Parse(HttpContext.Current.Request.Params["page"]);//獲取到頁數
pageSize = int.Parse(HttpContext.Current.Request.Params["rows"]);//獲取每頁的大小
total = bll.GetRecordCount(" " );//獲取總數
DataSet ds = bll.GetListByPage(" ", "ID", (pageIndex - 1) * pageSize + 1, pageSize * pageIndex);//GetRecordCount,GetListByPage都是生成器生成
list = bll.DataTableToList(ds.Tables[0]);//DataTableToList
var data = new { total = total, rows = list };//EasyUI中的datagrid返回json數據的格式
//將data集合構造成Json字符串
HttpContext.Current.Response.Write(Kits.SerializeToJson(data));//SerializeToJson是在公共類的一個辦法
----------------------------------第二種:利用LaomaPager生成類插件來分頁--------------------------------------------------------------------------
--后台頁面
protected List<Model.HKSJ_Main> mainShow = new List<Model.HKSJ_Main>();
//實現分頁顯示圖片數據
protected string NavPager { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
//獲取網站Main表中的數據
BLL.HKSJ_Main mainServices = new BLL.HKSJ_Main();
//首先獲取分頁參數
int pageSize = Request["pageSize"] == null ? 10 : Convert.ToInt32(Request["pageSize"]);
int pageIndex = Request["pageIndex"] == null ? 1 : Convert.ToInt32(Request["pageIndex"]);
//獲取到totalCount的數據
int totalCount = mainServices.GetRecordCount(string.Empty);
//計算在頁面上面顯示的分頁的數量
DataSet ds = mainServices.GetListByPage(string.Empty, "ID", pageSize * (pageIndex - 1) + 1, pageIndex * pageSize);
//內容數據顯示
mainShow = mainServices.DataTableToList(ds.Tables[0]);
//分頁數據顯示,LaomaPager是封裝類插件
NavPager = Common.LaomaPager.ShowPageNavigate(pageSize, pageIndex, totalCount);
}
注釋說明:GetListByPage是生成器里面就可以直接用的,LaomaPager是封裝類插件(找一個就好)
--前台頁面
<div class="pages"><%=NavPager %></div>
--前台頁面表格數據
<asp:Content ID="Content2" ContentPlaceHolderID="Content" runat="server">
<table style="width: 100%">
<tr>
<th>ID</th>
<th>title</th>
<th>content</th>
<th>people</th>
<th>date</th>
<th>status</th>
<th>MainPeople</th>
</tr>
<%foreach (var empoyees in Empoyees)
{%>
<tr>
<td><%=empoyees.ID %></td>
<td><%=empoyees.title %></td>
<td><%=empoyees.content %></td>
<td><%=empoyees.people %></td>
<td><%=empoyees.date %></td>
<td><%=empoyees.status %></td>
<td><%=empoyees.MainPeople %></td>
</tr>
<%} %>
</table>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="NavPage" runat="server">
<%=NavPager %>
</asp:Content>
--------------------------------------第三種:利用存儲過程分頁--------------------------------------------------
//新建一個一般處理程序
//接收表格的分頁數據
strPageIndex = context.Request.Params["page"];
strPageSize = context.Request.Params["rows"];
PagedData pageData = new PagedData() { PageIndex = int.Parse(strPageIndex), PageSize = int.Parse(strPageSize) };//PagedData 是一個公共類,如下面
//調用存儲過程來查詢數據 並使用out 修改輸出參數的值
var workFlowList = workFlowBll.GetPageDataByProcedure(int.Parse(strPageIndex), int.Parse(strPageSize), "IsDel='false'", out rowCount);
//List<NanFang_WorkFlowNode> workFlowNodeList = workFlowNodeBll.GetModelList(" IsDel='false'");
//將必要的數據賦值給EasyUI需要的變量
pageData.rows = workFlowList;
pageData.total = rowCount;
string str=Kits.SerializeToJson(pageData);
context.Response.Write(str);
//PagedData公共類
public class PagedData
{
public int PageIndex;
public int PageSize;
public int total;// RowCount; 是為 EasyUI的datagrid組件 而改
public object rows;//PagedList; 是為 EasyUI的datagrid組件 而改
public int PageCount
{
get
{
return (int)Math.Ceiling(Convert.ToDouble(total) / Convert.ToDouble(PageSize));
}
}
}
//在BLL層添加
public List<NanFang.Model.NanFang_WorkFlow> GetPageDataByProcedure(int pageIndex, int pageSize, string strWhere, out int rowsCount)
{
DataSet ds = dal.GetPageDataByProcedure(pageIndex, pageSize, strWhere, out rowsCount);
return DataTableToList(ds.Tables[0]);
}
//在IDAL層添加
DataSet GetPageDataByProcedure(int PageIndex, int PageSize, string strWhere, out int rowsCount);
//在DAL層添加
public DataSet GetPageDataByProcedure(int PageIndex, int PageSize, string strWhere, out int rowsCount)
{
SqlParameter[] parameters = {
new SqlParameter("@pageIndex", SqlDbType.Int),
new SqlParameter("@pageSize", SqlDbType.Int),
new SqlParameter("@strWhere", SqlDbType.NVarChar,200),
new SqlParameter("@rowCount", SqlDbType.Int)
};
parameters[0].Value = PageIndex;
parameters[1].Value = PageSize;
parameters[2].Value = strWhere;
parameters[3].Direction = ParameterDirection.Output;
return DbHelperSQL.RunProcedure("usp_GetWorkFlowPage", parameters, out rowsCount);//RunProcedure辦法是代碼生成器自帶的
}
//在數據庫中寫的存儲過程
USE [NanFang_Hospital]
GO
/****** Object: StoredProcedure [dbo].[usp_GetWorkFlowPage] Script Date: 04/02/2014 11:13:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[usp_GetWorkFlowPage]
@pageIndex int,--查詢的起始頁
@pageSize int,--每頁多少條數據
@strWhere nvarchar(200),--查詢workFlow表的條件
@rowCount int output --輸出函數
AS
BEGIN
declare @startNum nvarchar(10),--當前頁開始的索引
@endNum nvarchar(10),--當前頁結束索引
@sqlCount nvarchar(300),--查詢數據的總行數
@sqlSelect nvarchar(300)
set @startNum=cast((@pageIndex-1)*@pageSize as nvarchar(10))--計算當前頁開始的索引
set @endNum=cast(@pageIndex*@pageSize as nvarchar(10))--計算當前頁結束的索引
--判斷是否有條件的查詢
if(LEN(@strWhere)>1)
--有條件的查詢就執行下面語句
begin
set @sqlCount=N'select @rowCount=count(ID) from dbo.NanFang_WorkFlow where '+@strWhere
set @sqlSelect='select k.* from (select ROW_NUMBER() over(order by ID) AS num,* FROM dbo.NanFang_WorkFlow where '+@strWhere+') as k where k.num>'+@startNum+' and k.num<='+@endNum+' order by k.AddTime asc '
end
else
begin
set @sqlCount=N'select @rowCount=count(ID) from dbo.NanFang_WorkFlow '
set @sqlSelect='select k.* from (select ROW_NUMBER() over(order by ID) AS num,* FROM dbo.NanFang_WorkFlow ) as k where k.num>'+@startNum+' and k.num<='+@endNum+' order by k.AddTime asc '
end
--查詢總行數:執行系統內置的存儲過程
exec sp_executesql @sqlCount,N'@rowCount int output',@rowCount output
exec sp_executesql @sqlSelect
END