Определить выбранный элемент и текущую страницу Telerik MVC Grid — на стороне клиента

#telerik-grid #telerik-mvc

#telerik-grid #telerik-mvc

Вопрос:

Я использую сетку Telerik MVC с привязкой данных Ajax.

Я хотел бы сделать 2 вещи с сеткой Telerik MVC:

  1. Когда выбрана строка, определите (на стороне клиента), на какой странице в данный момент находится сетка, а также какая строка была выбрана.
  2. При следующей загрузке сетки (с использованием ajax… Я никогда не покидаю страницу), вернитесь на ту же страницу, чтобы показать последний выбор. (Я думаю, я действительно просто спрашиваю, есть ли способ сразу перейти на страницу сетки после загрузки данных, а не на страницу 1)

Пожалуйста, имейте в виду, я уже знаю о событиях на стороне клиента. Я хотел бы знать, как сделать # 1 из события и # 2 либо со стороны клиента, либо программно каким-либо образом.

Редактировать / Подробнее: я думаю, я знаю, что мне нужно здесь сделать. Поскольку я использую здесь загрузку Ajax, сообщение Ajax вызывается где-то в коде Telerik. Я вижу, что во время этого сообщения Ajax они отправляют параметр «страница» контроллеру. Если бы я мог это как-то отредактировать, я уверен, что это сработало бы, но у меня возникли проблемы с изменением этого параметра.

Заранее спасибо!

Ответ №1:

Ради тех, кто еще ищет это, я понял это:

Получение текущей страницы сетки: для этого я использую jQuery, чтобы определить, какой номер имеет «выбранный» стиль (t-state-active), чтобы определить текущий номер страницы. Пример (мой идентификатор сетки — «cases-grid»):

 function getCurrentGridPage() {
        ///<summary>Gets the current page of the #cases-grid</summary>
        var page = $('#cases-grid .t-state-active');
        if (page.length == 0) {
            return 1; //default to page 1 when unknown
        }
        return page.text();
    }
  

Вторая часть моего вопроса была на самом деле хорошо задокументирована на сайте Telerik … Я просто пропустил это на некоторое время. Чтобы загрузить сетку на определенную страницу (кроме 1), я добавил в свою сетку следующее:

 .Pageable(pager => pager.PageTo(@Model.InitialPage))
  

И добавил свойство InitialPage в мою модель.