Я использую MvcContrib Grid control в своем приложении MVC. Следуя примеру из книги Pro * ASP.NET MVC, я создал следующий класс и помощник по подкачке страниц
открытый класс PagingInfo
{
public int TotalItems { get; set; }
public int ItemsPerPage { get; set; }
public int CurrentPage { get; set; }
public int TotalPages
{
get { return (int)Math.Ceiling((decimal)TotalItems / ItemsPerPage); }
}
public static class PagingHelpers
{
public static MvcHtmlString PageLinks(this HtmlHelper html,
PagingInfo pagingInfo,
Func<int, string> pageUrl)
{
StringBuilder result = new StringBuilder();
for (int i = 1; i <= pagingInfo.TotalPages; i++)
{
TagBuilder tag = new TagBuilder("a"); // Construct an <a> tag
tag.MergeAttribute("href", pageUrl(i));
tag.InnerHtml = i.ToString();
if (i == pagingInfo.CurrentPage)
tag.AddCssClass("selected");
result.AppendLine(tag.ToString());
}
return MvcHtmlString.Create(result.ToString());
}
}
На мой взгляд, у меня есть следующее:
Страница: @ Html.PageLinks (ViewBag.Paging как PagingInfo, i => Url.Action ("Index", new {pageNo = i}))
@Html.DropDownList("pageSize", new SelectList(new[] { "2", "25", "50", "75", "100", "200" }), "-Select-", new { @style = "width:75px" })
1)
Как отправить в pageSize (который является числом строк) класс помощника с помощью Url.Action?
2)
Я также определил следующую функцию для включения ajax. Это эффективный способ сделать это? Я собирался использовать аналогичную функцию для оценки. Так что ваши взгляды будут оценены.
$ ("# pageLinks a"). Live ("click", function () {
$.get($(this).attr("href"), function(response) {
$("#Grid").replaceWith(response);
});
return false;
});
Спасибо,