Cấp bậc tác giả:

DOTNET

Hướng dẫn tích hợp đếm số hàng trong repeater asp.net

Được viết bởi webmaster ngày 11/01/2020 lúc 05:27 PM
Làm thế nào để phân trang trong Repeater Asp.Net, bài viết này sẽ hướng dẫn cách phân trang, đồng thời các đếm từng dòng trong repeater.
  • 0
  • 1035

Hướng dẫn tích hợp đếm số hàng trong repeater asp.net


Làm thế nào để phân trang trong Repeater Asp.Net, bài viết này sẽ hướng dẫn cách phân trang, đồng thời các đếm từng dòng trong repeater.
Bước 1: Đầu tiên chúng ta cần có control CutePager(tải tại đây) để tích hợp vào trong trang web asp.net của mình, copy dòng dưới để vào đầu trang web mà mình muốn sử dụng phân trang
<%@ Register Assembly="PagerControl" Namespace="CutePager" TagPrefix="cc1" %>
Lưu ý là phải Add reference dll vừa tải về vào trong Project
Bước 2: Xây dựng một control Repeater của Asp.Net như bên dưới
<asp:Repeater runat="server" ID="rpTinTuc">
<ItemTemplate>   
<tr>
<td align="center"><%# getIndex(Container.ItemIndex+1)%></td>      
<td align="center"><%# Eval("Ten")%></td>  
</tr>
</ItemTemplate>
 </asp:Repeater>
* Trong đó, Container.ItemIndex sẽ khởi tạo chỉ mục của hàng, sử dụng để đánh số thứ tự cho hàng. Tuy nhiên, với CutePager thì mỗi lần qua trang sẽ khởi tạo thứ tự lại như ban đầu. Do đó, chúng ta cần hàm getIndex để đếm chỉ mục và hiển thị thứ tự phân trang phù hợp.
Bước 3: Vào Asp.Net.cs của mình, tại Page_Load, khởi tạo gọi dự liệu để hiển thị
protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Pager1.CurrentIndex = 1;
                Bind_Data(Pager1.CurrentIndex);
        }
}
Bước 4: Cũng tại Asp.Net.cs, hàm mới
protected void Bind_Data(int PageNo)
{
    int TotalRows = 0;
    string WhereClause = "1=1";
    DataSet dsThongBao = DataRepository.Provider.ExecuteDataSet("DetaiDetail_GetPaged", WhereClause, "NgayCapNhat DESC", PageNo - 1, Pager1.PageSize);
    rpTinTuc.DataSource = dsThongBao.Tables[0];
    rpTinTuc.DataBind();
    try
    {
         TotalRows = Convert.ToInt32(dsThongBao.Tables[1].Rows[0][0]);
    }
    catch (Exception){}
    Pager1.ItemCount = TotalRows;
    if (TotalRows <= Pager1.PageSize)
        Pager1.Visible = false;
    else
        Pager1.Visible = true;
}

protected void Pager1_Command(object sender, CommandEventArgs e)
{
    int currnetPageIndex = Convert.ToInt32(e.CommandArgument);
    Pager1.CurrentIndex = currnetPageIndex;
    Bind_Data(currnetPageIndex);
}
* Bind_Data, sử dụng để hiển thị dữ liệu theo điều kiện cho trước, ở đây mình sử dụng DataSet, các bạn có thể sử dụng TList,... chỉ cần trả về tập dữ liệu cho Datasource thôi là được. Ngoài ra chú ý phần phân trang được tích hợp vào thủ tục(procedure)
Bước 5: Tạo hàm getIndex để đếm chỉ mục
public string getIndex(int numRow)
        {
            if (Pager1.CurrentIndex==1)
            {
               return numRow.ToString();
            }
            return ((Pager1.CurrentIndex-1) *10 + numRow).ToString();
}
Kết quả như hình bên dưới:
phan-trang-01.jpg

phan-trang-02.jpg

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML