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);
}
}
}
查看全文
相关阅读:
LeetCode15题: 寻找三数和,附完整代码
LeetCode 11 水池蓄水问题
分布式初探——分布式事务与两阶段提交协议
高等数学——讲透求极限两大方法,夹逼法与换元法
书籍推荐——一本老书,吴军老师《数学之美》
概率统计——期望、方差与最小二乘法
算法浅谈——递归算法与海盗分金问题
机器学习基础——带你实战朴素贝叶斯模型文本分类
线性代数精华——从正交向量到正交矩阵
LeetCode10 Hard,带你实现字符串的正则匹配
原文地址:https://www.cnblogs.com/jiangyuxuan/p/842349.html
最新文章
数据库开发实战教程:使用Python连接Kerberos的Presto
Volcano火山:容器与批量计算的碰撞
【华为云技术分享】LiteOS无法直接烧录或者烧录失败解决方法--ST-Link
快速了解云原生中的微服务应用(内含福利)
从软件开发到 AI 领域工程师:模型训练篇
Libra教程之:Transaction的生命周期
Libra教程之:Libra协议的关键概念
Java函数式编程和Lambda表达式
Spring Cloud sleuth with zipkin over RabbitMQ教程
Spring Cloud OpenFeign使用教程
热门文章
公钥私钥
分组密码与模式
AES算法
DES算法
Spring5参考指南:AspectJ高级编程之Configurable
Spring5参考指南:AOP代理
Spring5参考指南:基于Schema的AOP
Spring5参考指南:AspectJ注解
Spring5参考指南:SpringAOP简介
Spring5参考指南: SpEL
Copyright © 2011-2022 走看看