利用PagedDataSource 对象进行分页

利用PagedDataSource 对象进行分页

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:/test.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();
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个基于ASP.NET的使用DataList控件,并且借助PagedDataSource类实现分页查询学生信息的示例代码: 1. 首先,我们需要创建一个学生信息表的数据库。以下是一个示例的创建代码: ```sql CREATE TABLE Students ( Id INT PRIMARY KEY, Name VARCHAR(50), Age INT, Gender VARCHAR(10), Major VARCHAR(50) ); ``` 2. 然后,我们需要在ASP.NET的页面中添加一个DataList控件,用来显示学生信息。以下是一个示例的DataList控件代码: ```html <asp:DataList ID="dlStudents" runat="server" RepeatLayout="Table" RepeatColumns="5"> <ItemTemplate> <tr> <td><%#Eval("Id")%></td> <td><%#Eval("Name")%></td> <td><%#Eval("Age")%></td> <td><%#Eval("Gender")%></td> <td><%#Eval("Major")%></td> </tr> </ItemTemplate> </asp:DataList> ``` 3. 接下来,我们需要在页面的代码后台中,编写查询学生信息并进行分页的代码。以下是示例的后台代码: ```csharp protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindData(); } } private void BindData() { // 查询所有学生信息 string connectionString = "Data Source=.;Initial Catalog=MyDatabase;Integrated Security=True"; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand("SELECT * FROM Students", connection); SqlDataAdapter adapter = new SqlDataAdapter(command); DataTable table = new DataTable(); adapter.Fill(table); // 分页查询学生信息 PagedDataSource pds = new PagedDataSource(); pds.DataSource = table.DefaultView; pds.AllowPaging = true; pds.PageSize = 10; int currentPage = 0; if (Request.QueryString["page"] != null) { currentPage = int.Parse(Request.QueryString["page"]); } else { currentPage = 1; } pds.CurrentPageIndex = currentPage - 1; dlStudents.DataSource = pds; dlStudents.DataBind(); // 显示分页导航 int pageCount = pds.PageCount; for (int i = 1; i <= pageCount; i++) { HyperLink link = new HyperLink(); link.Text = i.ToString(); link.NavigateUrl = "Default.aspx?page=" + i.ToString(); if (i == currentPage) { link.Font.Bold = true; } Panel1.Controls.Add(link); Panel1.Controls.Add(new LiteralControl(" ")); } } } ``` 在这段代码中,我们首先查询所有的学生信息,并将其保存在一个DataTable中。然后,我们使用PagedDataSource类对DataTable进行分页,并将分页后的结果绑定到DataList控件上。最后,我们根据分页的结果,生成分页导航的HTML代码,并添加到页面上。 这就是一个基于ASP.NET的使用DataList控件,并且借助PagedDataSource类实现分页查询学生信息的示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值