asp.net分页 怎么加上分页显示

1年前 (2022-10-16)阅读4回复3最佳爬楼位置
zaibaike
zaibaike
  • 管理员
  • 注册排名1
  • 经验值561622
  • 级别管理员
  • 主题112324
  • 回复1
楼主

  DataList分页办法核心原理操纵PagedDataSource对象PagedDataSource类封拆了DataGrid 控件属性些属性使 DataGrid 施行分页下面PagedDataSource公共属性:

AllowCustomPaging 获取或设置指示否启用自定义分页值

AllowPaging 获取或设置指示否启用分页值

Count 获取要从数据源利用项数

CurrentPageIndex 获取或设置当前页索引

DataSource 获取或设置数据源

DataSourceCount 获取数据源项数

FirstIndexInPage 获取页第索引

IsCustomPagingEnabled 获取值该值指示否启用自定义分页

IsFirstPage 获取值该值指示当前页否首页

IsLastPage 获取值该值指示当前页否页

IsPagingEnabled 获取值该值指示否启用分页

IsReadOnly 获取值该值指示数据源否只读

IsSynchronized 获取值该值指示否同步对数据源拜候(线程平安)

PageCount 获取显示数据源所有项所需要总页数

PageSize 获取或设置要单页上显示项数

VirtualCount 获取或设置利用自定义分页时数据源现实项数

何利用 PagedDataSource对象停止DataList分页呢(网上有多讲DataList分页文章有些糊弄人有还无法起感化我上当过次本文我颠末人理论经历得顺利施行希望对各人有所帮忙)

现起头拉

第步取出数据datatable获得dataview付给PagedDataSource对象

DataView objView = objTable。

  DefaultView;

PagedDataSource objPds = new PagedDataSource();

objPds。DataSource = objView;

第二步PagedDataSource对象objPds设置

objPds。

  AllowPaging = true;

objPds。PageSize = 4;

objPds。CurrentPageIndex = int。Parse(ViewState["pageindex"]。

  ToString());

上面两段代码都写BindData()函数供每次点击分页按钮时挪用BindData()函数下:

private void BindData()

string sql = "SELECT * From team";

DataTable objTable = data。

  GetDataTable(sql);

if (objTable != null && objTable。Rows。Count > 0)

DataView objView = objTable。

  DefaultView;

PagedDataSource objPds = new PagedDataSource();

objPds。DataSource = objView;

objPds。

  AllowPaging = true;

objPds。PageSize = 4;

objPds。CurrentPageIndex = int。Parse(ViewState["pageindex"]。

  ToString());

if (!objPds。IsFirstPage)

lkPre。Visible = true;

else

lkPre。

  Visible = false;

if (!objPds。IsLastPage)

lkNext。Visible = true;

else

lkNext。

  Visible = false;

dlData。DataSource = objPds;

dlData。DataBind();

此行我们已经数据交给了PagedDataSource剩下分页操纵PagedDataSource 停止处置能各人留意了数据交付完好数据交付数据量大会形成定效率低下过里暂时考虑问题有兴趣伴侣起切磋下

上面第三行代码 ViewState["pageindex"] 用来控造PagedDataSource当前页我们Page_Load事务和第三步要函数来详细讲解何操纵 ViewState["pageindex"]控造当前页

BindData()函数面部门控造向前向按钮显隐再多说

第三步分页控造

第二步说过操纵 ViewState["pageindex"] 来控造当前页了页面加载时候显示第页我们当要Page_load事务 ViewState["pageindex"]置0

protected void Page_Load(object sender, EventArgs e)

if (!IsPostBack)

ViewState["pageindex"] = "0";

BindData(); }

我们需要加两按钮(Previous、Next)来点击停止分页控造

PREVIOUS PAGE>

NEXT PAGE

两按钮 OnCommand都IndexChanging()函数我们通过CommandArgument(pre和next)来区分底向前翻还向翻下面IndexChanging()函数

protected void IndexChanging(object sender, EventArgs e)

string strCommand = ((LinkButton)sender)。

  CommandArgument。ToString();

int pageindex = int。Parse(ViewState["pageindex"]。ToString());

if (strCommand == "pre")

pageindex = pageindex - 1;

else

pageindex = pageindex 1;

ViewState["pageindex"] = pageindex;

BindData();

至此我们分页函数已经写完了里还有些工具没有说比显示共几笔记录当前第几页共几页及每页页码相信看懂了上面所说些工具还容易写出来

总结下我们前台写好DataList期待数据而数据由PagedDataSource供给分页通过我们新加两ImageButton来控造ViewState进而达控造PagedDataSourceCurrentPageIndex来实现所其实DataList也没干啥事显示了每页数据罢了有点需要申明PagedDataSourceCurrentPageIndex从0起头也Page_load事务要讲ViewState置0而1缘故

Asp。

  net供给了三功用强大列表控件:DataGrid、DataList和Repeater控件其只要DataGrid控件供给分页功用相对DataGridDataList和Repeater控件具有更高款式自定义性所多时候我们喜好利用DataList或Repeater控件来显示数据

实现DataList或Repeater控件分页显示有几种办法:

1、写办法或存储过程按照传入页数返回需要显示数据表(DataTable)

2、利用PagedDataSource类(位于System。

  Web。UI。WebControls定名空间里)

本篇文章次要说利用PagedDataSource类实现DataList和Repeater控件分页显示DataGrid控件内部也利用了PagedDataSource类PagedDataSource 类封拆 DataGrid 控件属性些属性使 DataGrid 施行分页

PagedDataSource 类部门公共属性:

AllowCustomPaging 获取或设置指示否启用自定义分页值

AllowPaging 获取或设置指示否启用分页值

Count 获取要从数据源利用项数

CurrentPageIndex 获取或设置当前页索引

DataSource 获取或设置数据源

DataSourceCount 获取数据源项数

FirstIndexInPage 获取页第索引

IsCustomPagingEnabled 获取值该值指示否启用自定义分页

IsFirstPage 获取值该值指示当前页否首页

IsLastPage 获取值该值指示当前页否页

IsPagingEnabled 获取值该值指示否启用分页

IsReadOnly 获取值该值指示数据源否只读

IsSynchronized 获取值该值指示否同步对数据源拜候(线程平安)

PageCount 获取显示数据源所有项所需要总页数

PageSize 获取或设置要单页上显示项数

VirtualCount 获取或设置利用自定义分页时数据源现实项数

些属性否和DataGrid属性类似没错DataGrid控件利用PagedDataSource类来实现数据分页显示 下面举利用PagedDataSource类实现DataList和Repeater控件分页显示例子:

public void Page_Load(Object src,EventArgs e)

OleDbConnection objConn=new OleDbConnection(@"Provider=Microsoft。

  Jet。OLEDB。4。0; Data Source=c: est。mdb");

OleDbDataAdapter objCommand=new OleDbDataAdapter("select * from Users",objConn);

DataSet ds=new DataSet();

objCommand。

  Fill(ds);

//对PagedDataSource 对象相关属性赋值

PagedDataSource objPds = new PagedDataSource();

objPds。

  DataSource = ds。Tables[0]。DefaultView;

objPds。AllowPaging = true;

objPds。PageSize = 5;

int CurPage;

//当前页面从Page查询参数获取

if (Request。

  QueryString["Page"] != null)

CurPage=Convert。ToInt32(Request。QueryString["Page"]);

else

CurPage=1;

objPds。

  CurrentPageIndex = CurPage-1;

lblCurrentPage。Text = "Page: " CurPage。ToString();

if (!objPds。IsFirstPage)

lnkPrev。

  NavigateUrl=Request。CurrentExecutionFilePath "?Page=" Convert。ToString(CurPage-1);

if (!objPds。IsLastPage)

lnkNext。

  NavigateUrl=Request。CurrentExecutionFilePath "?Page=" Convert。ToString(CurPage 1);

//把PagedDataSource 对象赋给Repeater控件

Repeater1。

  DataSource=objPds;

Repeater1。DataBind();

0
回帖

asp.net分页 怎么加上分页显示 相关回复(3)

碧海
碧海
沙发
ASP.NET分页功能可实现动态显示和方便的页面跳转。
2个月前 (01-06 02:53)回复00
忆梦
忆梦
2楼
asp.net分页加上显示,代码实现需谨慎。
2个月前 (01-06 02:54)回复00
静待繁花
静待繁花
3楼
分页功能强大,有助于简化复杂的数据处理过程。
2个月前 (01-06 02:54)回复00
静默时光
静默时光
4楼
很不错的ASP.NET分页系统,再加上页面上的分段显示功能会使内容更加易于阅读和理解。
2个月前 (01-06 02:55)回复00
取消