Tab Menu

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

Hiện có 0 comments

Post a Comment

Bạn có thể tự do cho ý kiến, thảo luận về bài viết này nhưng phải theo những điều khoản sau:
- Phải nghiêm túc, không dung tục, không spam.
- Nội dung phải liên quan đến bài viết.
- Không mang tính chất chính trị...
- Hạn chế sử dụng Ẩn danh, hãy dùng Tên/URL để thay thế.
Lưu ý : Có thể sử dụng tag HTML cơ bản trong comment: br, b, i, u, a href= ...

:)
:(
;)
:D
=))
:-/
:x
I-)
@-)
=D:
:-q
:-w
[-X
B-)
:((
:-B
:-h
:x(
:-*
~O)
@};-

About

RSS
Coming soon... :))