Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Giúp các bé đáng thương ấy với

Gameshow “Ai Là Triệu Phú” trên VTV đang chờ đón bạn – Tải ngay!

Bán đấu giá ủng hộ từ thiện

Sự kiện công nghệ lớn nhất trong năm của Sony sắp đổ bộ Hà Nội

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Tin tức công nghệ mới
kết quả từ 1 tới 8 trên 8
  1. #1
    tritro's Avatar
    tritro vẫn chưa có mặt trong diễn đàn Búa Đá
    Tham gia
    Sep 2010
    Bài
    60
    Cảm ơn
    8
    Điểm
    53/24 bài viết

    Default Asp.net CollectionPager - Phân trang dữ liệu với CollectionPager trong asp.net

    đã có khá nhiều bài viết về phân trang dữ liệu. Bài viết này tôi tiếp tục giới thiệu với bạn về phân trang dữ liệu cho DataList, GridView, Repeater, ... với việc sử dụng thư viện CollectionPager để bạn có thêm lựa chọn khi trinh bày dữ liệu cần phân trang.



    Trong Visual Studio thì Gridview đã hỗ trợ sẵn việc phân trang nhưng khả năng tùy biến cũng không cao. Còn với ListView, Repeater,.. thì cũng khá nhiều bạn gặp khó khăn khi phân trang. CollectionPager.dll là một thư viện hỗ trợ phân trang khá hay, dễ dùng và có khả năng tùy biến cao.

    Trước tiên bạn cần Download thư viện CollectionPager.dll tại đây.

    Sau khi download và giải nén bạn Add References và chọn file file dll bạn vừa giải nén hoặc copy vào thư mục Bin trong project của bạn. Bạn cũng có thể Add vào Toolbox của VS để khi sử dụng có thể kéo thả cho dễ dàng.

    Trong code aspx bạn sử dụng như sau:

    Đăng ký sử dụng thư viện CollectionPager.dll

    <%@ Register Assembly="CollectionPager" Namespace="SiteUtils" TagPrefix="cc1" %>Kéo thả một Listview như minh họa sau.

    <asp:ListView ID="lvDemo" runat="server" >
    <LayoutTemplate>
    <ul>
    <li id="itemPlaceholder" runat="server" />
    </ul>
    </LayoutTemplate>
    <ItemTemplate>
    <li><b>&raquo;</b> <%# Eval("Title")%></li>
    </ItemTemplate>
    </asp:ListView> Ở đây là tôi minh họa dữ liệu có trường Title, Bạn có thể sửa lại theo tên trường dữ liệu của bạn

    <cc1:CollectionPager ID="CollectionPager1"
    FirstText="Đầu"
    BackText="« Trước &amp;nbsp;"
    LabelText=""
    LastText="Cuối"
    NextText="&amp;nbsp; Sau »"
    ShowFirstLast="True"
    SliderSize="5" PagingMode="PostBack"
    runat="server" BackNextLinkSeparator="" BackNextLocation="Split"
    PageNumbersDisplay="Numbers" ResultsLocation="None"
    BackNextDisplay="Buttons">
    </cc1:CollectionPager>Trong đoạn code trên tôi đã việt hóa và tùy biến hiển thị phân trang. Bạn có thể chỉnh sửa theo ý bạn.

    Trong code C# bạn cần viết hàm để bind dữ liệu vào ListView như sau

    protected void Page_Load(object sender, EventArgs e)
    {
    CollectionPager1.MaxPages = 10000;
    CollectionPager1.PageSize = 10; // số items hiển thị trên một trang.
    CollectionPager1.DataSource = GetDataTable().DefaultView;
    CollectionPager1.BindToControl = lvDemo;
    lvDemo.DataSource = CollectionPager1.DataSourcePaged;
    lvDemo.DataBind();
    }
    private DataTable GetDataTable()
    {
    DataTable dtItems = new DataTable();

    DataColumn dcName = new DataColumn();
    dcName.ColumnName = "title";
    dcName.DataType = System.Type.GetType("System.String");
    dtItems.Columns.Add(dcName);

    DataRow row;
    for (int i = 1; i <= 155; i++)
    {
    row = dtItems.NewRow();
    row["title"] = "hmweb - Phân Trang với CollectionPager:Bản ghi thứ " + i;
    dtItems.Rows.Add(row);
    }
    return dtItems;
    }
    Ở ví dụ mà tôi minh họa tôi viết một hàm GetDataTable() để lấy dữ liệu, Đây là dữ liệu tĩnh để minh họa. nếu dữ liệu của bạn cần lấy từ cơ sở dữ liệu thì bạn cũng dùng tương tự. Bạn có thể tham khảo các bà viết khác trên hmweb để biết cách Bin dữ liệu từ Database ra DataTable

    Với Repeater hay Gridview phân trang cũng tương tự

    Các bài viết cùng chủ đề:









    ------------
    Bạn có thể tham khảo chi tiết hướng dẫn bài viết tại:
    Thay đổi nội dung bởi tritro; 06-03-2011 lúc 12:33. Lý do: Thêm liên kết demo

  2. Có 1 thành viên cảm ơn tritro cho bài viết này:
    cauchunho_gacon (06-10-2011)

  3. #2
    totden's Avatar
    totden vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Dec 2007
    Bài
    16
    Cảm ơn
    0
    Điểm: 1/1 bài viết

    Default

    Kiểu phân trang này hơi khó cho search engine đây

  4. #3
    thanh_pro's Avatar
    thanh_pro vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    May 2008
    Đến từ
    Hà Nội _ gốc Nghệ An quê choa
    Bài
    273
    Cảm ơn
    80
    Điểm
    121/68 bài viết

    Default

    Cái này codeproject cũng đã có nói về vấn đề này rồi. Nói chung cũng hay nhưng nếu tự mình làm ra thì hay hơn.

    Cảm ơn bạn đã đưa vào box cho anh em học hỏi. Cố gắng phát huy.
    Đời thật đẹp!

  5. #4
    strela25's Avatar
    strela25 vẫn chưa có mặt trong diễn đàn Rìu Vàng
    Tham gia
    Dec 2009
    Bài
    696
    Cảm ơn
    186
    Điểm
    1.216/386 bài viết

    Default

    Các bác thử dùng RadControls xem, phân trang trong RadListView hay RadGrid của nó tiện lắm.

  6. #5
    tritro's Avatar
    tritro vẫn chưa có mặt trong diễn đàn Búa Đá
    Tham gia
    Sep 2010
    Bài
    60
    Cảm ơn
    8
    Điểm
    53/24 bài viết

    Default

    Trích strela25 View Post
    Các bác thử dùng RadControls xem, phân trang trong RadListView hay RadGrid của nó tiện lắm.
    Với RadControls cần phải mất tiền mua bản quyền, cùng hơi đắt đấy. Hơn nữa khi dùng các trontrol của RadControls thì chạy web khá chập.
    Khi dùng RadControls bạn thử nhấn phải chuột trên trang web và chọn Properties xem Size của nó bạn sẽ thấy là nó có kích thước khá lớn.

  7. #6
    satthudatinh011's Avatar
    satthudatinh011 vẫn chưa có mặt trong diễn đàn Rìu Vàng Đôi
    Tham gia
    Dec 2007
    Đến từ
    location !
    Bài
    1.459
    Cảm ơn
    541
    Điểm
    420/243 bài viết

    Default

    mình thấy cái này phân trang ko hay
    tùy biến giao diện khó, bị lỗi 1 số chỗ, mình nhấn Next thường ko chạy, thuật toán lấy dữ liệu ko chính xác
    nói chung là tự viết sẽ hay hơn
    dùng store hoặc linq

  8. #7
    ducgiai2512vn's Avatar
    ducgiai2512vn vẫn chưa có mặt trong diễn đàn Búa Đá Đôi
    Tham gia
    Mar 2011
    Bài
    95
    Cảm ơn
    0
    Điểm
    93/29 bài viết

    Default

    Cái này được build thành dll , chỉ chèn vào, chứ nhìn không đẹp

  9. #8
    cauchunho_gacon's Avatar
    cauchunho_gacon vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Jun 2010
    Bài
    22
    Cảm ơn
    14
    Điểm
    0/0 bài viết

    Default

    Em đang làm báo các web. các bác pro nào phân trang giúp em có được không. em làm theo mà không được
    đây là trang web của em
    mong các bác giúp đỡ em.


 

 

Tag của Đề tài này

Quyền sử dụng

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể tự sửa bài viết của mình
  •