Jqgrid пейджинг не работает ... нужна помощь - PullRequest
2 голосов
/ 23 февраля 2011

ниже мой код jqgrid

 $(function() {
        jQuery("#jsonmap").jqGrid({
        url: 'Handler.ashx',
            datatype: "json",
            colNames: ['Inv No', 'Name','Email'],
            colModel: [{ name: 'id', index: 'id', width: 100},
              { name: 'name', index: 'name', width: 200 },
              { name: 'email', index: 'email', width: 200}],
              rowNum: 10, rowList: [10, 20, 30],
              pager: '#pjmap',
              sortname: 'id',
              viewrecords: true, sortorder: "desc",
              jsonReader: { repeatitems: false, id: "0" },
                  caption: "JSON Mapping", height: '100%'
              }); 
          jQuery("#jsonmap").jqGrid('navGrid', '#pjmap', { edit: false, add: false, del: false,search:false }); 
            });
  • Мои данные JSON:

{"page": 1,"total": 2,"records": 15,"rows": [{"id": 1, "name":"giri", "email":"giri"}, {"id": 2, "name":"ravi", "email":"giri"},{"id": 3, "name":"kumar", "email":"giri"}, {"id": 4, "name":"raju", "email":"giri"}, {"id": 5, "name":"madhu", "email":"giri"},{"id": 6, "name":"vivek", "email":"giri"}, {"id": 7, "name":"radha", "email":"giri"}, {"id": 8, "name":"krishna", "email":"giri"}, {"id": 9, "name":"raghu", "email":"giri"}, {"id": 10, "name":"bhaskar", "email":"giri"}, {"id": 11, "name":"bhaskar", "email":"giri"}, {"id": 12, "name":"bhaskar", "email":"giri"}, {"id": 13, "name":"bhaskar", "email":"giri"}, {"id": 14, "name":"bhaskar", "email":"giri"}, {"id": 15, "name":"subbu", "email":"giri"}]}

пейджинг не работает. Может кто-нибудь сказать мне, в чем ошибка? Спасибо ...

1 Ответ

2 голосов
/ 23 февраля 2011

url, который вы используете в jqGrid, будет дополнен информацией о требуемой странице.Вам нужно использовать QueryString коллекцию HttpContext, чтобы получить параметры.После этого необходимо реализовать разбиение на страницы данных на стороне сервера .

public class Handler : IHttpHandler {
    public void ProcessRequest (HttpContext context) {
        string pageToLoad = context.Request.QueryString["page"];
        string rowsPerPage = context.Request.QueryString["rows"];
        string sortIndex = context.Request.QueryString["sidx"];
        string sortDirection = context.Request.QueryString["sord"]; //"asc" or "desc"
        ...
    }
}

Если пользователь нажимает кнопку сетки на следующей / предыдущей странице, если пользователь нажимает на столбецзаголовок для сортировки данных, новый запрос будет отправлен на сервер.Таким образом, в случае использования datatype:'json' или datatype:'xml' сервер отвечает за предоставление данных с правильной страницы.Перед разбиением на страницы данные должны быть предварительно отсортированы.

Если у вас есть проблемы с реализацией подкачки данных на стороне сервера, вы можете вернуть все данные и включить loadonce:true в список параметров jqGrid.Следует понимать, что в случае использования loadonce:true данные будут загружаться с сервера только один раз .После первой загрузки параметр datatype изменится на 'local'.

Я рекомендую вам (если это возможно) использовать веб-сервисы ASMX или более качественный сервис WFC как часть вашего веб-сайта вместоиспользование очень старой техники ASP.NET Web Handler (ashx).

...