Nano Hash - криптовалюты, майнинг, программирование

jqGrid — нумерация страниц не работает должным образом

Как вы можете видеть на этом изображении

введите здесь описание изображения

У меня есть 13 записей в моей БД, но пейджер говорит, что у него только 1 страница (с 10 строками), что неверно.

Соответствующая часть кода из моего .js

function cria(){
$("#grid").jqGrid({
    datatype: 'json',
    url: 'json.jsp',
    jsonReader: {repeatitems: false},
    pager: '#paginado',
    rowNum: 10,
    rowList: [10,20,30],
    emptyrecords: "Não há registros.",
    recordtext: "Registros {0} - {1} de {2}",
    pgtext: "Página {0} de {1}",
    colNames:['Código','Descrição'],
    colModel:[
        {name:'codigo', width:80, sorttype:"int", sortable: true, editable: false},
        {name:'descricao', width:120, sortable: true, editable: true, editrules:{required:true}}
    ],
    viewrecords: true,
    editurl:"dadosGrid.jsp?edit=true",
    caption: "Grupos",
    hiddengrid: true
});             

$("#grid").jqGrid('navGrid','#paginado',{},
    {edit:true,url:"Adm?aux=edit",closeAfterEdit:true,reloadAfterSubmit:true},
    {add:true,url:"Adm?aux=add",closeAfterAdd:true,reloadAfterSubmit:true},             
    {del:false},
    {search:true},
    {refresh:true});    
};

Соответствующая часть кода из моего .jsp

String json = "[";
for (UserAux user : users ){
    json += "{";
    json += "\"codigo\":\""+user.getCod()+"\",";
    json += "\"descricao\":\""+user.getDescricao()+"\",";
    json += "},";
}
json = json.substring(0,json.length()-1);   
json += "]";                        
out.println(json);  
%>

Ответы:


1

Параметры jqGrid по умолчанию означают, что вы реализуете пейджинг на стороне сервера. Если вы хотите вернуть все данные сразу с сервера (что было бы хорошим выбором, если у вас есть 13 записей), вы должны просто добавить опцию loadonce: true.

Кроме того, я бы порекомендовал вам добавить опции gridview: true, autoencode: true и height: "auto" в ваш jqGrid. Кроме того, вы должны удалить edit:true, del:false, search:true и refresh:true, которые вы используете внутри опций navGrid, потому что вы используете их не в том месте. Если вы хотите указать параметры, вы должны указать свойства второго параметра (который в вашем коде равен {}).

28.11.2013
  • Я попытался добавить loadonce:true, gridview:true, а также переместил параметры navGrid внутрь {}. Ни один из вариантов (добавить, изменить, удалить) сейчас не работает, похоже, он не может оштрафовать их URL-адреса. 28.11.2013
  • @lucasdc: Использование только loadonce: true уже должно решить вашу проблему. Что вы имеете в виду под похоже, что он не может оштрафовать их URL? Если вы используете неправильные URL-адреса, данные не должны отображаться в сетке. Текст вашего вопроса интерпретирую так, чтобы первая страница отображалась корректно и у вас была проблема только с листанием. Поэтому, пожалуйста, убедитесь, что первая страница сетки будет отображаться правильно. 28.11.2013
  • Моя первая страница отображается вроде правильно. Как я показал на своем изображении, я получил 13 записей (в будущем их будет намного больше, например, 10k+), на первой странице показано 10 записей, но в сетке указано, что есть только 1 страница записей, но на самом деле должно быть 2 страницы ( 10 + 3). Стрелки не кликабельны, но если я выберу отображение 20 строк, остальные 3 (которые должны быть на 2-й странице) отображаются в сетке. Я имею в виду, что выглядит так, как будто он не может найти свой URL-адрес, потому что я думаю, что способ, которым вы показали мне передачу параметров (например, этот): {edit:true, del:false, search:true} не работает 28.11.2013
  • @lucasdc: Не могли бы вы добавить к тексту вашего вопроса точный ответ сервера с данными JSON? В случае, если я могу воспроизвести ваш тест. Я уверен, что проблема должна быть решена, если вы добавите loadonce: true в список параметров jqGrid. Возможно, вы разместили параметр не в том месте? 28.11.2013
  • Хорошо, так как вы были так уверены в том, что вы сказали, я внимательно изучил свой код и обнаружил, что написал loadOnce вместо loadonce. Пагинация заработала. Если бы вы могли взглянуть на этот вопрос, я был бы признателен. stackoverflow.com/questions/20265384/. Большое тебе спасибо! 28.11.2013
  • @Oleg да **loadonce: true ** не работает для перезагрузки сетки с новыми данными с сервера, тогда как изменение его на false создает проблему в разбиении на страницы. Я думаю, что ваш обновленный форк был бы решением этой проблемы, верно? обязательно попробую 20.04.2016
  • @Bhaiya: использование loadonce: true рекомендуется, если вам нужно отобразить не очень большое количество элементов в сетке (‹1000 или ‹10000). Например, вы можете использовать последнюю (4.13.2) версию бесплатной jqGrid из CDN (см. статью вики) или загрузить ее. Я реализовал много новых функций и использование fromServer: true в reloadGrid и использование параметра reloadGridOptions: { fromServer: true } в navGrid (см. ОБНОВЛЕННУЮ часть 2 ответа) 20.04.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..