前臺
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MyProPage.aspx.cs" Inherits="MyProPage" %>
后臺
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class MyProPage : System.Web.UI.Page
{
MyPagination pagina = null;
int CurPage = 0;
int PageSize = 10;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
GVBind();
}
}
public void GVBind()
{
if (Request["page"] != null)
CurPage = Convert.ToInt32(Request["page"].ToString());
if (Request["PageSize"] != null)
PageSize = Convert.ToInt32(Request["PageSize"].ToString());
if (CurPage < 1) CurPage = 1;
//--
int num = Convert.ToInt32(SqlHelper.ExecuteScalar(CommandType.Text, "select count(*) from D_Information", new SqlParameter()).ToString());
pagina = new MyPagination();
pagina.Count = num;
pagina.TableName = "D_Information";
pagina.PageIndex = CurPage;
pagina.PageSize = PageSize;
DataSet ds = SqlHelper.ExecuteDataSet(System.Data.CommandType.StoredProcedure, "GetMyrecordFromPage", pagina.GetParam());
GridViewItems.DataSource = ds.Tables[0];
GridViewItems.DataBind();
}
protected void GridViewItems_RowDataBound(object sender, GridViewRowEventArgs e)
{
}
/// <summary>
/// 顯示分頁
/// </summary>
public void PageView()
{
Response.Write(pagina.ChinesePage());
}
//protected int _curpage = 1;
//protected int _pagecount = 0;
//protected int _pagesize = 10;
//protected int _totalcount = 0;
//// Methods
//public string ChinesePage()
//{
// string str = DelUrlPara("page");
// StringBuilder builder = new StringBuilder();
// int num = 0;
// int num2 = 0;
// if ((this._pagecount <= 10) || (this._curpage <= 3))
// {
// num = 1;
// num2 = (10 > this._pagecount) ? this._pagecount : 10;
// }
// else if ((this._pagecount - this._curpage) <= 7)
// {
// num = this._pagecount - 9;
// num2 = this._pagecount;
// }
// else
// {
// num = this._curpage - 2;
// num2 = this._curpage + 7;
// }
// builder.Append(string.Concat(new object[] { "<span class=\"pagenav\">共:", this._totalcount, "條 ", this._pagesize, "條/頁 ", this._pagecount, "頁/<font color=red>", this._curpage, "頁</font> </span>" }));
// if (this._curpage > 1)
// {
// builder.Append(string.Concat(new object[] { "<a href=\"", str, "page=1\" title=\"首頁\"><<</a> <a href=\"", str, "page=", this._curpage - 1, "\" title=\"上一頁\"><</a> " }));
// }
// for (int i = num; i <= num2; i++)
// {
// builder.Append((this._curpage == i) ? ("<a class=\"curr\" href=\"javascript:void(0)\">" + i + "</a> ") : string.Concat(new object[] { "<a href=\"", str, "page=", i, "\" title=\"第", i, "頁\">", i, "</a> " }));
// }
// if (this._pagecount > this._curpage)
// {
// builder.Append(string.Concat(new object[] { "<a href=\"", str, "page=", this._curpage + 1, "\" title=\"下一頁\">></a> <a href=\"", str, "page=", this._pagecount, "\" title=\"末頁\">>></a> " }));
// }
// return builder.ToString();
//}
}
sql USE [News]
GO
/****** 對象: StoredProcedure [dbo].[GetMyrecordFromPage] 腳本日期: 03/09/2010 12:18:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[GetMyrecordFromPage]
(
@tblName varchar(255),--表名
@fldName varchar(255),--字段
@PageSize int = 10,--頁尺寸
@PageIndex int = 1,--頁碼
@OrderType bit =0,--排序方式(0 升序 !0降序)
@IsCount bit =0,--返回記錄數(shù) !0返回記錄數(shù)
@strWhere varchar(2000) = '' --條件語句
)
as
declare @strSQL varchar(6000)
declare @strTmp varchar(1000)
declare @strOrder varchar(500)
--判斷是否返回行數(shù)
if @IsCount!=0
begin
set @strSql='select count(['+@fldName+']) from ['+@tblName+']'
end
else
begin
--判斷排序類型
if @OrderType!=0
begin
set @strOrder=' order by ['+@fldName+'] desc'
set @strTmp='<(select min'
end
else
begin
set @strOrder=' order by ['+@fldName+'] asc'
set @strTmp='>(select max'
end
--判斷有無條件
if @strWhere=''
begin
set @strWhere='1=1'
end
--判斷是否第一頁
if @PageIndex =1
begin
set @strTmp=''
if @strWhere!=''
begin
set @strTmp=' where
'+@strWhere end
set @strSQL='select top '+str(@PageSize)+' * from ['+@tblName+']
'+@strTmp+@strOrder end
else
begin
set @strSQL='select top '+str(@PageSize)+' * from ['
+@tblName+'] where ['+@fldName+']'+@strTmp+'(['
+@fldName+']) from (select top '+str((@PageIndex-1)*@PageSize)+' ['
+@fldName+'] from ['+@tblName+'] where
'+@strWhere +@strOrder+') as tblTmp) and
'+@strWhere+@strOrder end
end
print @strSQL
exec(@strSQL)