Phân trang trong Repeater - Asp.net

AnhDaiDienBaiDangPaging in Repeater Asp.net

Repeater là một data control cho phép load dữ liệu lên trang asp một cách tùy chình.. Cách sử dụng Repeater bạn có tham khảo tại w3school.com . Hôm nay đang làm cái website asp nên sẵn tiện chia sẽ bài viết này, mong có thể hữu ích và nhận được thêm góp ý.

Để thực hiện, trước tiên phải có một CSDL. Ở đây s sử dụng SQL Express 2008 có sẵn trong Visual Studio 10 (VS). Đầu tiên trong VS s tạo website mới: New > Web site (Language C#).
Add vào một CSDL như sau: Right click vào App_Data > Add existing item ... > Chọn CSDL.
Tiếp theo s đổi tên file Default.aspx thành Pager.aspx cho dễ nhìn thôi. Đây là source của Pager.aspx







ID ProductPrice (vnd)
<%# DataBinder.Eval(Container.DataItem, "ID_Product") %> <%# DataBinder.Eval(Container.DataItem, "Price") %>





<< Pre
Next >>

Trong Pager.aspx ta chỉ thêm vào Repeater1, Lable1, HyperLink (lnkNext và lnkPre). Sau đó chọn Pager.aspx.cs thêm vào code sau:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string _chuoiKetNoi = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SilverJewelry.mdf;Integrated Security=True;User Instance=True;";
SqlConnection _ketNoi = new SqlConnection(_chuoiKetNoi);
try
{
_ketNoi.Open();
Response.Write("Ket noi thanh cong!");
string _sql = "select * from Product";
SqlDataAdapter _adap = new SqlDataAdapter(_sql, _ketNoi);
DataTable _tb = new DataTable();
_adap.Fill(_tb);

// Starting paging here.
PagedDataSource pds = new PagedDataSource();
DataView dv = new DataView(_tb);
pds.DataSource = dv;
pds.AllowPaging = true;
// Show number of product in one page.
pds.PageSize = 6;
// Specify sum of page.
int numPage = pds.PageCount;

int currentPage;
if (Request.QueryString["page"] != null)
{
currentPage = Int32.Parse(Request.QueryString["page"]);
}
else
{
currentPage = 1;
}
// Because paging always start at 0.
pds.CurrentPageIndex = currentPage - 1;
// Show
Label1.Text = "Page " + currentPage + " of " + pds.PageCount;
// Config next - pre link.
if (!pds.IsFirstPage)
lnkPre.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(currentPage - 1);
else
{

lnkPre.Visible = false;
}
if (!pds.IsLastPage)
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(currentPage + 1);
else
{

lnkNext.Visible = false;
}

Repeater1.DataSource = pds;
Repeater1.DataBind();
}
catch
{
// Print out error here.
Response.Write("Loi!");
_ketNoi.Close();
}
finally
{
_ketNoi.Close();
}

}
}

Kết quả như sau:
Bạn có thể tải source bên dưới

Pass: saliproblog
SHARE
    Blogger Comment
    Facebook Comment

0 comments :

Post a Comment