Điều tôi đã thực hiện để phân trang cho đến nay là tạo điều khiển Máy nhắn tin, Phải có url phân trang, id phần tử html để cập nhật, số trang, kích thước trang và tổng số.
Url phân trang có dạng điều khiển/hành động mà hành động trả về một chuỗi html (trang trả lại dữ liệu)
Các pager gắn thêm một danh sách các liên kết javascript cho các trang. Các liên kết này gọi hàm jQuery dựa trên ajax để truy cập url phân trang. Mỗi lần nhấp vào trang sẽ thay thế nội dung hiện tại của phần tử html bằng kết quả của cuộc gọi ajax. Something như thế này:
public string Render()
{
var buffer = new StringBuilder(1000);
buffer.AppendLine(@"<ul class=""datatable_pager"">")
.AppendLine("\t<li>Additional Pages:</li>");
int numberOfPages = TotalItemCount % PageSize == 0 ? TotalItemCount/PageSize : TotalItemCount/PageSize + 1;
for(int i = 0; i < numberOfPages; i++)
{
AppendPageLink(buffer, i);
}
buffer.AppendLine("\t</ul>");
AppendPagingJS(buffer);
return buffer.ToString();
}
private void AppendPageLink(StringBuilder buffer, int i)
{
buffer.Append("\t\t<li><a href=\"")
.Append(PagingLink.Replace("$PAGE$", i.ToString()))
.Append("\">")
.Append(i.ToString())
.Append("</a>")
.AppendLine("\t\t</li>");
}
private void AppendPagingJS(StringBuilder buffer)
{
buffer.AppendLine(@"
<script type=""text/javascript"">
function page(page, size, updateElement)
{
$.post('" + PagingUrl + @"',
{
pageNumber: page,
pageSize: size,
},
function(response)
{
$(""#"" + updateElement).html(response);
},
""html""
);
}
</script>");
}
Các bài viết javascript để url phân trang, do đó hành động sẽ cần phải sau đó làm điều gì đó như:
int.TryParse (Request.Params [ "PAGENUMBER"], ra khỏi trang) int.TryParse (Yêu cầu.Params ["pageSize"], ra kích thước))
và sử dụng kết quả với các thành phần truy cập dữ liệu của bạn để lấy trang dữ liệu, hiển thị dưới dạng html và trả về.
Hy vọng điều đó sẽ giúp ích, tôi có thể mở rộng nếu cần.
Nguồn
2008-10-30 05:44:12
Một liên kết là 404, một điểm đến trang chủ của blog và liên kết cuối cùng không hữu ích chút nào FAIL! – Martin
Sau khi tìm kiếm, liên kết này chỉ cho tôi một số mã giúp: http://blogs.taiga.nl/martijn/2008/08/27/paging-with-aspnet-mvc/ – Martin