12/9/11

Phân trang trong asp.net mvc

Làm thế nào để phân trang trong ASP.NET MVC?



public class PagerBuilder
{

private class PagerLink
{
public string Title { get; set; }
public int PageNo { get; set; }
public string currentClass { get; set; }
}

private readonly string _urlTemplate;
private readonly List _pagerLinks =
new List();
private string _defaultClass = string.Empty;
public PagerBuilder(string urlTemplate,string defaultClass,Boolean useAjax,String onClick)
{
_urlTemplate = urlTemplate;
_useAjax = useAjax;
_onClick = onClick;
_defaultClass = defaultClass;
}
public bool _useAjax = false;
private string _onClick;
public string PagerClass { get; set; }

public void AddPage(string title, int pageNo)
{
AddPage(title, pageNo, string.Empty);
}

public void AddPage(string title, int pageNo,string itemClass)
{
var link = new PagerLink
{
PageNo = pageNo,
Title = title,
currentClass = itemClass,
};
_pagerLinks.Add(link);
}

public override string ToString()
{
var builder = new StringBuilder();
builder.Append("
if (!string.IsNullOrEmpty(PagerClass))
{
builder.Append(" class="");
builder.Append(PagerClass);
builder.Append(""");
}
builder.Append(">");

foreach (var link in _pagerLinks)
{
builder.Append(" if (_useAjax) builder.Append("#");
builder.AppendFormat(_urlTemplate, link.PageNo);
builder.Append(""");

if (!string.IsNullOrEmpty(link.currentClass))
{
builder.Append(" class="");
builder.Append(link.currentClass + " " + _defaultClass);
builder.Append(""");
}
else if (!string.IsNullOrEmpty(_defaultClass))
{
builder.Append(" class="");
builder.Append(_defaultClass);
builder.Append(""");
}

if (!string.IsNullOrEmpty(_onClick))
{
builder.Append(" onClick="");
builder.Append(_onClick);
builder.Append(""");
}

builder.Append(">");
builder.Append(link.Title);
builder.Append("");
}

builder.Append("");
return builder.ToString();
}

var productCount = BantranhDB.Products.Where(m => m.CategoryID == cid).Count();
int numberOfPage = (int)Math.Ceiling((decimal)productCount / numberByPage);
pageid=(pageid != null) ? --pageid : 0;
// lay danh sach Product
var productModel=new List();
if (CategoryModel.Count!= 0) {
productModel = BantranhDB.Products.Include("Author").
Where(m => m.CategoryID == cid).OrderBy(m=>m.ProductID).
Skip((int)(numberByPage * pageid)).Take(numberByPage).
ToList();
<%= Html.SimplePager((int)ViewData["PageNumber"], (int)ViewData["NumbeOfPage"], "{0}", "current", "number", "ajaxProductTable(this)", true)%>





#main-content .pagination {
text-align: right;
padding: 20px 0 5px 0;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
}
.pagination a {
margin: 0 5px 0 0;
padding: 3px 6px;
}

.pagination a.number {
border: 1px solid #ddd;
}

.pagination a.current {
background: #469400 url('images/bg-button-green.gif') top left repeat-x !important;
border-color: #459300 !important;
color: #fff !important;
}

.pagination a.current:hover {
text-decoration: underline;
}
Bookmark and Share

0 comments:

Post a Comment

Next previous home

Cộng đồng yêu thiết kế Việt Nam Thiet ke website, danang