页面上有多个datalist要求一起分页用C#该怎么做。

发布网友 发布时间:2024-09-27 18:33

我来回答

1个回答

热心网友 时间:2024-10-21 13:48

可以用数据库分页功能或者用自带的datalist分页。不过自带的datalist分页数据传输量很大不建议。
你可以去看看第3方的。net分页控件一般都是用数据库分页语句做的。
下面是datalist分页代码,不建议使用。你要的话我就重网上COPY下来了。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using PracticeMyBookShopBLL;
using PracticeMyBookShopModels;
public partial class HotBookList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//首次加载,赋初值
ViewState["Page"] = 0;
}

Databind();
}

private void Databind()
{
PagedDataSource pdsList = new PagedDataSource();
//对PagedDataSource 对象的相关属性赋值
pdsList.DataSource = BookManager.GetHotBooks();
pdsList.AllowPaging = true;
pdsList.PageSize = 5;

pdsList.CurrentPageIndex = Pager;
lblCurrentPage.Text = "第 " + (pdsList.CurrentPageIndex + 1).ToString() + " 页 共 " + pdsList.PageCount.ToString() + " 页";
SetEnable(pdsList);

//把PagedDataSource 对象赋给DataList控件
dlBooks.DataSource = pdsList;
dlBooks.DataBind();
}
private void SetEnable(PagedDataSource pds)
{
lnkbtnPre.Enabled = true;
lnkbtnNext.Enabled = true;
if (pds.IsFirstPage)
lnkbtnPre.Enabled = false;

if (pds.IsLastPage)
lnkbtnNext.Enabled = false;
}

/// <summary>
/// 当前页数
/// </summary>
private int Pager
{
get
{
return (int)ViewState["Page"];
}
set
{
ViewState["Page"] = value;
}
}

protected void lnkbtnPre_Click(object sender, EventArgs e)
{
Pager--;
Databind();

}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
Pager++;
Databind();

}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com