ASP.NET 中如何用C#语言代码实现分页功能

ASP.NET 中如何用C#语言代码实现分页功能,第1张

控件

在前台放一个DataList控件

<asp:DataList ID="DataList1" runat="server">

<ItemTemplate>

这里放重复的内容

</ItemTemplate>

</asp:DataList>

<div id="pages">当前页次:<asp:Label ID="labPage" runat="server" Text="1"></asp:Label>/<asp:Label ID="labBackPage" runat="server"></asp:Label>

<a id="btnOne" runat="server"><img src="/images/back_start.gif" width="22" height="11" id="lnkbtnOne" runat="server" alt="首页" /></a>

<a id="btnUp" runat="server"><img src="/images/back.gif" width="16" height="11" id="lnkbtnUp" runat="server" alt="上一页" /></a>

<a id="btnNext" runat="server"><img src="/images/next.gif" width="16" height="11" id="lnkbtnNext" runat="server" alt="下一页" /></a>

<a id="btnBack" runat="server"><img src="/images/next_end.gif" width="22" height="11" id="lnkbtnBack" runat="server" alt="尾页" /></a>

</div>

在.cs后台中...

protected void bind()

{

int curpage = Convert.ToInt32(Request.QueryString["page"])

if (curpage == null || curpage == 0) { curpage = 1}

//使用PagedDataSource类实现DataList控件的分页功能

PagedDataSource ps = new PagedDataSource()

string sql = "select id,title,date from [news] where title<>''"

if (classid1 != null &&classid1 != 0) { sql += " and classid=" + classid1}

if (keyword1 != null) { sql += " and title like '%" + keyword1 + "%'"}

sql += " order by date desc"

//获取数据集

DataSet ds = constr.GetDataSet(sql, "CP")

ps.DataSource = ds.Tables["CP"].DefaultView

//是否可以分页

ps.AllowPaging = true

//显示的数量

ps.PageSize = 20

//取得当前页的页码

ps.CurrentPageIndex = curpage - 1

this.lnkbtnUp.Src = "/images/back.gif"

this.lnkbtnNext.Src = "/images/next.gif"

this.lnkbtnBack.Src = "/images/next_end.gif"

this.lnkbtnOne.Src = "/images/back_start.gif"

this.btnOne.HRef = "/News.aspx?classid=" + classid1 + "&keyword=" + Server.UrlEncode(keyword1) + "&page=1"

this.btnUp.HRef = "/News.aspx?classid=" + classid1 + "&keyword=" + Server.UrlEncode(keyword1) + "&page=" + (curpage - 1)

this.btnNext.HRef = "/News.aspx?classid=" + classid1 + "&keyword=" + Server.UrlEncode(keyword1) + "&page=" + (curpage + 1)

this.btnBack.HRef = "/News.aspx?classid=" + classid1 + "&keyword=" + Server.UrlEncode(keyword1) + "&page=" + ps.PageCount

if (curpage == 1)

{

//不显示第一页按钮

this.lnkbtnOne.Src = "/images/back_start_no.gif"

this.btnOne.HRef = ""

//不显示上一页按钮

this.lnkbtnUp.Src = "/images/back_no.gif"

this.btnUp.HRef = ""

}

if (curpage == ps.PageCount)

{

//不显示下一页

this.lnkbtnNext.Src = "/images/next_no.gif"

this.btnNext.HRef = ""

//不显示最后一页

this.lnkbtnBack.Src = "/images/next_end_no.gif"

this.btnBack.HRef = ""

}

//显示分页数量

this.labBackPage.Text = Convert.ToString(ps.PageCount)

//绑定DataList控件

this.DataList1.DataSource = ps

this.DataList1.DataKeyField = "ID"

this.DataList1.DataBind()

}

无语了,这个也能问的出来啊。。。。。下面的是java的代码,几乎是复制过去就能用。。。

/**

* 分页方法

*@returnType:List<Object>

* @param list 源数据

* @param currentPage 当前页

* @param maxNum 每页显示几条

* @param pageNum 总页数

* @return

*/

public static List getPageList(List list,int currentPage,int maxNum,int pageNum){

int fromIndex = 0//从哪里开始截取

int toIndex = 0 //截取几个

if(list == null || list.size() == 0)

return null

//当前页小于或等于总页数时执行

if( currentPage <= pageNum &&currentPage != 0){

fromIndex = (currentPage - 1)*maxNum

if(currentPage == pageNum){

toIndex = list.size()

}

else {

toIndex = currentPage*maxNum

}

}

return list.subList(fromIndex, toIndex)

}

DataGridView 本身就具有分页 可以直接使用的 也可以不用那个分页 那就自己写个 用DataGridView的DataSource来绑定一个DataTable ,DataTable 主要是查询某个区间的数据,主要有几个参数 1 RowCount 一次返回多少行 PageSize一页几个, CurragePage第几页 通过SQl语句 Select top RowCount * from tableName Where Id not in(Select top (CurragePage-1)*PageSize Id form tableName) and 查询条件 大致就这样了 细节地方多注意就是 不懂可以找我 我基本每天都在线的


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12194361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存