前臺(tái)設(shè)計(jì):
復(fù)制代碼 代碼如下:
%@ Page Language="C#" AutoEventWireup="true" CodeBehind="paging.aspx.cs" Inherits="五二一練習(xí).paging" %>
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head runat="server">
title>/title>
script src="js/Jquery1.7.js" type="text/javascript">/script>
script type="text/javascript">
$(function () {
$('#txtPagination').focus(function () {
$(this).val("");
})
})
/script>
/head>
body>
form id="form1" runat="server">
div>
asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
Height="336px" Width="685px">
Columns>
asp:BoundField DataField="Id" HeaderText="編號(hào)" />
asp:BoundField DataField="NewsTitle" HeaderText="標(biāo)題" />
asp:BoundField DataField="NewsContent" HeaderText="內(nèi)容" />
asp:BoundField DataField="CreateTime"
DataFormatString="{0:yyyy-MM-dd hh:mm:ss}" HeaderText="發(fā)布時(shí)間" />
/Columns>
/asp:GridView>
asp:LinkButton ID="btnFirst" runat="server" onclick="btnFirst_Click">第一頁(yè)/asp:LinkButton>
asp:LinkButton
ID="btnPre" runat="server" onclick="btnPre_Click">上一頁(yè)/asp:LinkButton>
asp:LinkButton ID="btnNext"
runat="server" onclick="btnNext_Click">下一頁(yè)/asp:LinkButton>
asp:LinkButton ID="btnLast" runat="server" onclick="btnLast_Click">最后一頁(yè)/asp:LinkButton>asp:TextBox
ID="txtPagination" runat="server">/asp:TextBox>
asp:LinkButton ID="btnSkip" runat="server" onclick="btnSkip_Click">GO/asp:LinkButton>
/div>
/form>
/body>
/html>
首先在數(shù)據(jù)庫(kù)創(chuàng)建存儲(chǔ)過(guò)程
復(fù)制代碼 代碼如下:
create proc usp_role_GetDateByPageIndex
@pageSize int,
@pageIndex int
as
begin
select * from
(
select *,ROW_NUMBER() over(order by role_id) as rownumber from role) as tbl
where tbl.rownumber between (@pageSize*(@pageIndex-1)+1) and @pageIndex*@pageSize
end
exec usp_role_GetDateByPageIndex 5,3
在項(xiàng)目中添加BLL,DAL,DataAccess,MODEL層
在DAL中寫(xiě)一個(gè)方法:
復(fù)制代碼 代碼如下:
//自己寫(xiě)的方法,分頁(yè)獲取數(shù)據(jù)列表
public DataTable GetListDataTable(int PageSize, int PageIndex)
{
SqlParameter[] parameters = {
new SqlParameter("@PageSize", SqlDbType.Int),
new SqlParameter("@PageIndex", SqlDbType.Int)
};
parameters[0].Value = PageSize;
parameters[1].Value = PageIndex;
return DbHelperSQL.RunProcedureDataTable("usp_role_GetDateByPageIndex", parameters);
}
在BLL中調(diào)用GetListDataTable:
public DataTable GetListDataTable(int pagesize, int pageindex)
{
return dal.GetListDataTable(pagesize, pageindex);
}
在DbHelper中添加RunProcedureDataTable方法:
public static DataTable RunProcedureDataTable(string stroreProcName, IDataParameter[] parameters)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataTable dt = new DataTable();
connection.Open();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, stroreProcName, parameters);
sqlDA.Fill(dt);
connection.Close();
return dt;
}
}
然后在后臺(tái)調(diào)用即可:
復(fù)制代碼 代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace 練習(xí)
{
public partial class paging : System.Web.UI.Page
{
int pagesize = 10;
int pageindex = 1;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["pageindex"] = 1;
LadaData();
GetListPageindex();
}
}
private void GetListPageindex()
{
BLL.T_News1 bnews = new BLL.T_News1();
int totalcount = bnews.GetRecordCount("");
if (totalcount % pagesize == 0)
{
ViewState["lastpageindex"] = totalcount / pagesize;
}
else
{
ViewState["lastpageindex"] = totalcount / pagesize + 1;
}
}
private void LadaData()
{
BLL.T_News1 bnews = new BLL.T_News1();
DataTable dt = bnews.GetListDataTable(pagesize, Convert.ToInt32(ViewState["pageindex"]));
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
//第一頁(yè)
protected void btnFirst_Click(object sender, EventArgs e)
{
ViewState["pageindex"] = 1;
LadaData();
}
//上一頁(yè)
protected void btnPre_Click(object sender, EventArgs e)
{
int pageindex = Convert.ToInt32(ViewState["pageindex"]);
if (pagesize>1)
{
pageindex--;
ViewState["pageindex"] = pageindex;
LadaData();
}
}
//下一頁(yè)
protected void btnNext_Click(object sender, EventArgs e)
{
int pageindex = Convert.ToInt32(ViewState["pageindex"]);
if (pageindexConvert.ToInt32(ViewState["lastpageindex"]))
{
pageindex++;
ViewState["pageindex"] = pageindex;
LadaData();
}
}
//最后一頁(yè)
protected void btnLast_Click(object sender, EventArgs e)
{
ViewState["pageindex"] = ViewState["lastpageindex"];
LadaData();
}
//跳轉(zhuǎn)頁(yè)面
protected void btnSkip_Click(object sender, EventArgs e)
{
int result;
if (int.TryParse(txtPagination.Text, out result) == true)
{
ViewState["pageindex"] = txtPagination.Text.Trim();
LadaData();
}
else
{
txtPagination.Text = "請(qǐng)輸入合法的數(shù)字";
}
}
}
}
您可能感興趣的文章:- 一個(gè)Asp.Net的顯示分頁(yè)方法 附加實(shí)體轉(zhuǎn)換和存儲(chǔ)過(guò)程 帶源碼下載
- asp.net利用存儲(chǔ)過(guò)程和div+css實(shí)現(xiàn)分頁(yè)(類(lèi)似于博客園首頁(yè)分頁(yè))
- asp.net 分頁(yè)存儲(chǔ)過(guò)程實(shí)例剖析心得
- asp.net 數(shù)據(jù)訪(fǎng)問(wèn)層 存儲(chǔ)過(guò)程分頁(yè)語(yǔ)句
- AspNetPager分頁(yè)控件 存儲(chǔ)過(guò)程
- asp.net結(jié)合aspnetpager使用SQL2005的存儲(chǔ)過(guò)程分頁(yè)
- asp.net安全、實(shí)用、簡(jiǎn)單的大容量存儲(chǔ)過(guò)程分頁(yè)
- asp.net 安全、實(shí)用、簡(jiǎn)單的大容量存儲(chǔ)過(guò)程分頁(yè)
- asp.net SQL存儲(chǔ)過(guò)程分頁(yè)
- asp.net安全、實(shí)用、簡(jiǎn)單的大容量存儲(chǔ)過(guò)程分頁(yè)
- asp.net 結(jié)合mysql存儲(chǔ)過(guò)程進(jìn)行分頁(yè)代碼