Paging cho Asp.net Repeater

Như chúng ta đã biết Repeater không hỗ trợ Paging vì vậy chúng ta sẽ khắc phục nó bằng đoạn code sau:

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”pagedrepeater.aspx.cs” Inherits=”PagedRepeater” %>
<html>
<head>Paged Repeater
</head>
<body>
<form runat=”server”>
<asp:Repeater ID=”rptPages” Runat=”server”>
<HeaderTemplate>
<table cellpadding=”0″ cellspacing=”0″ border=”0″>
<tr class=”text”>
<td><b>Page: 

<td>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID=”btnPage”
CommandName=”Page”
CommandArgument=” <%#
Container.DataItem %>”
CssClass=”text”
Runat=”server”> <%# Container.DataItem %>
</asp:LinkButton> 
</ItemTemplate>
<FooterTemplate>
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:Repeater ID=”rptItems” runat=”server”>
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><%# Eval(“pkItemID”) %>: <%# Eval(“Description”) %></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</form>
</body>
</html>

.cs file

using System;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class PagedRepeater : System.Web.UI.Page
{
public int PageNumber
{
get
{
if (ViewState[“PageNumber”] != null)
return Convert.ToInt32(ViewState[“PageNumber”]);
else
return 0;
}
set
{
ViewState[“PageNumber”] = value;
}
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
rptPages.ItemCommand +=
new RepeaterCommandEventHandler(rptPages_ItemCommand);
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
LoadData();
}
private void LoadData()
{
SqlConnection cn = new SqlConnection(“yourconnectiongoeshere”);
cn.Open();
SqlDataAdapter da = new SqlDataAdapter(“yourquerygoeshere”, cn);
DataTable dt = new DataTable();
da.Fill(dt);
cn.Close();
PagedDataSource pgitems = new PagedDataSource();
DataView dv = new DataView(dt);
pgitems.DataSource = dv;
pgitems.AllowPaging = true;
pgitems.PageSize = 25;
pgitems.CurrentPageIndex = PageNumber;
if (pgitems.PageCount > 1)
{
rptPages.Visible = true;
ArrayList pages = new ArrayList();
for (int i = 0; i < pgitems.PageCount; i++)
pages.Add((i + 1).ToString());
rptPages.DataSource = pages;
rptPages.DataBind();
}
else
rptPages.Visible = false;
rptItems.DataSource = pgitems;
rptItems.DataBind();
}
void rptPages_ItemCommand(object source, RepeaterCommandEventArgs e)
{
PageNumber = Convert.ToInt32(e.CommandArgument) – 1;
LoadData();
}
}

Sưu tầm

Về tieuyeuit
Lập trình viên Asp.net Tôi chia sẻ một,bạn chia sẻ một và chúng ta có rất nhiều!

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: