Я работаю над приложением asp.net MVC 4, в котором я использую telerik MVC Grid (НЕ KENDO GRID).
http://www.telerik.com/help/aspnet-mvc/telerik-ui-components-grid-client-api-and-events.html.
на моей странице (cshtml) у меня есть сетка, использующая общую частичную страницу. на странице у меня также есть другие элементы ввода (которые действуют как критерии фильтрации для данных сетки). Пользователь выбирает значения из элементов ввода и нажимает кнопку отправки, и данные в сетке заполняются соответствующим образом (с использованием post requst в коде MVC).
Я использую разбиение на страницы в сетке, и пользователь может выбрать размер страницы. Сетка настроена
Html.Telerik().Grid(Model)
.Name("Employees")
.Columns(cols =>
{
cols.Bound(e => e.FirstName).Title("First Name");
cols.Bound(e => e.LastName).Title("Last Name");
cols.Bound(e => e.SSN).Title("SSN");
cols.Bound(e => e.HireDate).Format("{0:MM/dd/yyyy}").Title("Hire Date");
cols.Bound(e => e.GroupName).Title("Department GROUP");
})
.Groupable()
.Sortable(x => x.OrderBy(z=>z.GetType()))
.Pageable(p => p.PageSize(5).Style(GridPagerStyles.PageSizeDropDown | GridPagerStyles.NextPreviousAndNumeric).PageTo((Model.Any()&&!string.IsNullOrWhiteSpace(Model.First().PageNumber)?Convert.ToInt32(Model.First().PageNumber):1)))
.Filterable()
.Render();
метод POST в контроллере сотрудников возвращает отфильтрованные данные, принимая значения модели и запрашивая базу данных.
теперь при изменении размера страницы сетки запрос отправляется методу GET контроллера, а не post.
Как поймать PageSizeChanged как событие сетки в JavaScript, чтобы я мог вручную публиковать форму везде, где пользователь изменяет размер страницы?
ИЗМЕНИТЬ: я написал следующий код, чтобы получать событие клика всякий раз, когда пользователь нажимает на число в раскрывающемся списке размера страницы.
$(document).on('click', 'ul.t-reset > li.t-item', function (e) {
//how to avoid default functionality of server call?
//tried following
//event.unbind();
//event.preventDefault();
//alert("Was preventDefault() called: " + event.isDefaultPrevented());
//event.stopImmediatePropagation()
//return false;
});