#ajax #asp.net-mvc #pagination
#ajax #asp.net-mvc #разбиение на страницы
Вопрос:
Как я могу реализовать Ajax для этой сетки, которая у меня есть?
@{
var grid = new WebGrid(source: Model, defaultSort: "FirstName", rowsPerPage: 5);
}
@if (Model.Count() > 0)
{
<div id="grid">
@grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("FirstName", "First Name"),
grid.Column("LastName", "Last Name"),
grid.Column("Address"),
grid.Column("DOB"),
grid.Column("Gender")
)
)
</div>
}
Я попытался добавить ajaxUpdateContainerId, но он выдает некоторую ошибку.
Я не мог этого понять.
Я создал свою сетку, как показано ниже
var grid = new WebGrid(canPage: true, rowsPerPage: 2, defaultSort: "FirstName", canSort: true, ajaxUpdateContainerId: "grid");
grid.Bind(Model, rowCount:Model.Count(), autoSortAndPage: false);
grid.Pager(WebGridPagerModes.All);
Но он показывает все записи в сетке, где я хочу показать только 5 записей в сетке, а затем подкачку
Ответ №1:
Здесь есть отличная статья на эту темуhttp://www.unboxedsolutions.com/sean/archive/2011/01/23/15964.aspx
@using AdventureWorks.Common
@using ThisController = MvcDemo.Controllers.GridExampleController
@model GridExampleViewModel
@{ ViewBag.Title = "Index"; }
@{
var grid = new WebGrid(canPage: true, rowsPerPage: ThisController.PageSize, canSort: true, ajaxUpdateContainerId: "grid");
grid.Bind(Model.Employees, rowCount: Model.TotalRecords, autoSortAndPage: false);
grid.Pager(WebGridPagerModes.All);
@grid.GetHtml(htmlAttributes: new { id="grid" },
columns: grid.Columns(
grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { EmployeeID = item.EmployeeID, ContactID = item.ContactID })),
grid.Column("FullName"),
grid.Column("Title")
));
}
Комментарии:
1. Я создал сетку следующим образом: var grid = new WebGrid(canPage: true, rowsPerPage: 2, DefaultSort: «FirstName», canSort: true, ajaxUpdateContainerId: «grid»); сетка. Привязка (модель, количество строк:модель. Count(), autoSortAndPage: false); сетка. Пейджер (WebGridPagerModes.All);
2. Кажется, вы не используете методы skip и take в своей модели. Результаты запроса. Пропустить (страница * записи). Взять (записи)
3. Я сделал что-то вроде этой сетки. Привязка (модель. Возьмите (5), количество строк: модель. Count(), autoSortAndPage: false); в нем перечислены 5 записей из 50, и когда я нажимаю на вторую страницу, все равно отображаются только первые 5 записей
4. Да, для этого потребуется 5 записей из вашей таблицы, пожалуйста, следуйте приведенному мной примеру страницы, вам нужно добавить подкачку в вашу модель.