zoukankan
html css js c++ java
ASP.NET GridView,DataList,Repeater的通用分页
using
System;
using
System.Collections;
using
System.ComponentModel;
using
System.Data;
using
System.Data.SqlClient;
using
System.Web;
using
System.Web.SessionState;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.HtmlControls;
namespace
ustonetdonet.DotNetPagedData
{
/**/
///
<summary>
///
本类提供GridView,DataList,Repeater的通用分页
///
参考了NetFire(Fire.Rolland.Han)
http://netfire.my.gsdn.net/2005/04/04/2945/
///
///
///
使用方法:
///
1.在引用里添加dll的引用
///
2.using ustonetdonet.DotNetPagedData;
///
3.private DotNetPagedData pager;
///
4.page_load()
///
if(!IsPostBack)
///
{
///
pager=new DotNetPagedData();
///
pager.PagedPanel=this.pagedPanel;
///
pager.GridView = this.GridView1; //如果是DataGrid则添加此项
///
pager.Datalist=this.DataList1; //如果是DataList则添加此项
///
pager.Repeater=this.Repeater1; //如果是Repeater则添加此项
///
pager.Lnknext=this.lnkNext;
///
pager.Lnkprev=this.lnkPrev;
///
pager.Lnklast=this.lnklast;
///
pager.Lnkfist=this.lnkfist;
///
pager.Pagenum=this.Pagenum;
///
pager.Pagecount=this.Pagecount;
///
pager.List=this.ddl_jump;
///
//简单示例定义DataSet外部定义,同样也可以采用执行sqlstr,并填充给DataSet,本类也重载了datapage(),详细信息可查看详细代码
///
DataSet ds=new DataSet();
///
ds.ReadXml(Server.MapPath("test.xml"));
///
pager.datapage(ds,5);
///
}
///
///
// DropDownList必须设定为AutoPostBack,下面添加它的事件
///
5.private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
///
{
///
pager=new DotNetPagedData();
///
pager.List=this.DropDownList1;
///
pager.Lnkjump=this.HyperLink3;
///
pager.select();
///
}
///
</summary>
public
class
DotNetPagedData : System.Web.UI.Page
{
private
System.Web.UI.WebControls.GridView gridview
=
null
;
private
System.Web.UI.WebControls.DataList datalist
=
null
;
private
System.Web.UI.WebControls.Repeater repeater
=
null
;
private
System.Web.UI.WebControls.HyperLink lnknext;
private
System.Web.UI.WebControls.HyperLink lnkprev;
private
System.Web.UI.WebControls.HyperLink lnkfist;
private
System.Web.UI.WebControls.HyperLink lnklast;
private
System.Web.UI.WebControls.HyperLink lnkjump;
private
System.Web.UI.WebControls.Label pagenum;
private
System.Web.UI.WebControls.Label pagecount;
private
System.Web.UI.WebControls.Panel pagedPanel;
private
System.Web.UI.WebControls.DropDownList list;
public
DotNetPagedData()
{
//
//
TODO: 在此处添加构造函数逻辑
//
}
public
System.Web.UI.WebControls.GridView GridView
{
get
{
return
this
.gridview;
}
set
{
this
.gridview
=
value;
}
}
public
System.Web.UI.WebControls.DataList Datalist
{
get
{
return
this
.datalist;
}
set
{
this
.datalist
=
value;
}
}
public
System.Web.UI.WebControls.Repeater Repeater
{
get
{
return
this
.repeater;
}
set
{
this
.repeater
=
value;
}
}
public
System.Web.UI.WebControls.HyperLink Lnkprev
{
get
{
return
this
.lnkprev;
}
set
{
this
.lnkprev
=
value;
}
}
public
System.Web.UI.WebControls.HyperLink Lnknext
{
get
{
return
this
.lnknext;
}
set
{
this
.lnknext
=
value;
}
}
public
System.Web.UI.WebControls.HyperLink Lnkfist
{
get
{
return
this
.lnkfist;
}
set
{
this
.lnkfist
=
value;
}
}
public
System.Web.UI.WebControls.HyperLink Lnklast
{
get
{
return
this
.lnklast;
}
set
{
this
.lnklast
=
value;
}
}
public
System.Web.UI.WebControls.HyperLink Lnkjump
{
get
{
return
this
.lnkjump;
}
set
{
this
.lnkjump
=
value;
}
}
public
System.Web.UI.WebControls.Label Pagenum
{
get
{
return
this
.pagenum;
}
set
{
this
.pagenum
=
value;
}
}
public
System.Web.UI.WebControls.Label Pagecount
{
get
{
return
this
.pagecount;
}
set
{
this
.pagecount
=
value;
}
}
public
System.Web.UI.WebControls.DropDownList List
{
get
{
return
this
.list;
}
set
{
this
.list
=
value;
}
}
public
System.Web.UI.WebControls.Panel PagedPanel
{
get
{
return
this
.pagedPanel;
}
set
{
this
.pagedPanel
=
value;
}
}
//
针对一般数据邦定,不执行sqlstr
public
void
datapage(DataSet ds,
int
pagenum)
{
PagedDataSource objPds
=
new
PagedDataSource();
objPds.AllowPaging
=
true
;
//
每页显示数目
objPds.PageSize
=
pagenum;
//
指定数据源
objPds.DataSource
=
ds.Tables[
0
].DefaultView;
int
CurPage;
//
绑定dropdownlist数据
for
(
int
i
=
1
; i
<=
objPds.PageCount; i
++
)
{
this
.list.Items.Add(i.ToString());
}
this
.list.Items.Insert(
0
,
new
ListItem(
"
页数
"
,
""
));
//
确定当前页数
if
(System.Web.HttpContext.Current.Request.Params[
"
Page
"
]
!=
null
)
{
CurPage
=
Convert.ToInt32(System.Web.HttpContext.Current.Request.Params[
"
Page
"
]);
}
else
{
CurPage
=
1
;
}
objPds.CurrentPageIndex
=
CurPage
-
1
;
if
(objPds.PageCount
>
1
)
{
pagedPanel.Visible
=
true
;
}
else
{
pagedPanel.Visible
=
false
;
}
//
显示当前页数
this
.pagenum.Text
=
"
当前:
"
+
CurPage.ToString()
+
"
页
"
;
//
显示总共页数
this
.pagecount.Text
=
"
共有
"
+
objPds.PageCount
+
"
页
"
;
//
下一页
if
(
!
objPds.IsLastPage)
{
lnknext.NavigateUrl
=
System.Web.HttpContext.Current.Request.CurrentExecutionFilePath
+
"
?Page=
"
+
Convert.ToString(CurPage
+
1
);
}
//
上一页
if
(
!
objPds.IsFirstPage)
{
lnkprev.NavigateUrl
=
System.Web.HttpContext.Current.Request.CurrentExecutionFilePath
+
"
?Page=
"
+
Convert.ToString(CurPage
-
1
);
}
//
第一页
if
(CurPage
!=
1
)
{
lnkfist.NavigateUrl
=
System.Web.HttpContext.Current.Request.CurrentExecutionFilePath
+
"
?Page=
"
+
Convert.ToString(
1
);
}
//
最后一页
if
(CurPage
!=
objPds.PageCount)
{
lnklast.NavigateUrl
=
System.Web.HttpContext.Current.Request.CurrentExecutionFilePath
+
"
?Page=
"
+
Convert.ToString(objPds.PageCount);
}
//
绑定gridview
if
(
this
.gridview
!=
null
)
{
gridview.DataSource
=
objPds;
gridview.DataBind();
}
//
绑定datalist
if
(
this
.datalist
!=
null
)
{
datalist.DataSource
=
objPds;
datalist.DataBind();
}
//
绑定repeater
if
(
this
.repeater
!=
null
)
{
repeater.DataSource
=
objPds;
repeater.DataBind();
}
}
//
重载,针对执行sqlstr
public
void
datapage(
string
sqlcon,
string
sqlstr,
int
pagenum)
{
SqlConnection objConn
=
new
SqlConnection(sqlcon);
SqlDataAdapter objCommand
=
new
SqlDataAdapter(sqlstr, objConn);
DataSet ds
=
new
DataSet();
objCommand.Fill(ds);
PagedDataSource objPds
=
new
PagedDataSource();
objPds.AllowPaging
=
true
;
//
每页显示数目
objPds.PageSize
=
pagenum;
//
指定数据源
objPds.DataSource
=
ds.Tables[
0
].DefaultView;
int
CurPage;
//
绑定dropdownlist数据
for
(
int
i
=
1
; i
<=
objPds.PageCount; i
++
)
{
this
.list.Items.Add(i.ToString());
}
this
.list.Items.Insert(
0
,
new
ListItem(
"
页数
"
,
""
));
//
确定当前页数
if
(System.Web.HttpContext.Current.Request.Params[
"
Page
"
]
!=
null
)
{
CurPage
=
Convert.ToInt32(System.Web.HttpContext.Current.Request.Params[
"
Page
"
]);
}
else
{
CurPage
=
1
;
}
objPds.CurrentPageIndex
=
CurPage
-
1
;
if
(objPds.PageCount
>
1
)
{
pagedPanel.Visible
=
true
;
}
else
{
pagedPanel.Visible
=
false
;
}
//
显示当前页数
this
.pagenum.Text
=
"
当前:
"
+
"
第
"
+
CurPage.ToString()
+
"
页
"
;
//
显示总共页数
this
.pagecount.Text
=
"
共有
"
+
objPds.PageCount
+
"
页
"
;
//
下一页
if
(
!
objPds.IsLastPage)
{
lnknext.NavigateUrl
=
System.Web.HttpContext.Current.Request.CurrentExecutionFilePath
+
"
?Page=
"
+
Convert.ToString(CurPage
+
1
);
}
//
上一页
if
(
!
objPds.IsFirstPage)
{
lnkprev.NavigateUrl
=
System.Web.HttpContext.Current.Request.CurrentExecutionFilePath
+
"
?Page=
"
+
Convert.ToString(CurPage
-
1
);
}
//
第一页
if
(CurPage
!=
1
)
{
lnkfist.NavigateUrl
=
System.Web.HttpContext.Current.Request.CurrentExecutionFilePath
+
"
?Page=
"
+
Convert.ToString(
1
);
}
//
最后一页
if
(CurPage
!=
objPds.PageCount)
{
lnklast.NavigateUrl
=
System.Web.HttpContext.Current.Request.CurrentExecutionFilePath
+
"
?Page=
"
+
Convert.ToString(objPds.PageCount);
}
//
绑定gridview
if
(
this
.gridview
!=
null
)
{
gridview.DataSource
=
objPds;
gridview.DataBind();
}
//
绑定datalist
if
(
this
.datalist
!=
null
)
{
datalist.DataSource
=
objPds;
datalist.DataBind();
}
//
绑定repeater
if
(
this
.repeater
!=
null
)
{
repeater.DataSource
=
objPds;
repeater.DataBind();
}
}
//
dropdownlist选择改变
public
void
select()
{
this
.lnkjump.NavigateUrl
=
System.Web.HttpContext.Current.Request.CurrentExecutionFilePath
+
"
?Page=
"
+
Convert.ToString(
this
.list.SelectedItem.Value);
}
}
}
查看全文
相关阅读:
人生苦短之我用Python篇(遍历、函数、类)
Python基础篇
OSPF 配置
RIPng 知识要点
RIP 知识要点
Cisco DHCP 配置要点
python读取mat文件
theano提示:g++ not detected的解决办法
Can Microsoft’s exFAT file system bridge the gap between OSes?
matlab 大块注释和取消注释的快捷键
原文地址:https://www.cnblogs.com/jiangyuxuan/p/842349.html
最新文章
【BZOJ 2151】 2151: 种树 (贪心+堆+双向链表)
【BZOJ 2118】 2118: 墨墨的等式 (最短路)
【POJ 2154】 Color (置换、burnside引理)
【POJ 2409】 Let it Bead(置换、burnside引理)
【BZOJ 1998】 1998: [Hnoi2010]Fsk物品调度(双向链表+并查集+置换)
【BZOJ 1119】 1119: [POI2009]SLO (置换)
【BZOJ 1697】1697: [Usaco2007 Feb]Cow Sorting牛排序
【BZOJ 1004】 1004: [HNOI2008]Cards (置换、burnside引理)
【BZOJ 1478】 1478: Sgu282 Isomorphism (置换、burnside引理)
【UVA 11077】 Find the Permutations (置换+第一类斯特林数)
热门文章
【LA 3641】 Leonardo's Notebook (置换群)
【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)
【BZOJ 1084】 1084: [SCOI2005]最大子矩阵 (DP)
【BZOJ 1038】 1038: [ZJOI2008]瞭望塔
【POJ 3335】 Rotating Scoreboard (多边形的核-
【BZOJ 3190】 3190: [JLOI2013]赛车 (半平面交)
人生苦短之我用Python篇(paramiko模块)
人生苦短之我用Python篇(socket编程)
BGP
人生苦短之我用Python篇(深浅拷贝、常用模块、内置函数)
Copyright © 2011-2022 走看看