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

Как показать все строки в jqGrid?

jqGrid предоставляет свойство rowNum, где вы можете установить количество строк для отображения на каждой странице. Как настроить сетку так, чтобы отображались только ВСЕ строки?

Прямо сейчас я просто устанавливаю rowNum на что-то действительно высокое, например <%= int.MaxValue %>, но мне интересно, есть ли лучший способ.


  • Мы также используем большое число. Вы можете сделать это значение флагом, и ваш сервер будет игнорировать пейджинг, когда он его видит. 06.08.2009
  • stackoverflow.com/questions/2224070/ 22.10.2011

Ответы:


1

В последней версии jqGrid вы можете установить для rowNum значение -1, чтобы сетка всегда отображала все строки:

rowNum: -1

См. последнюю документацию по jqGrid здесь.

Конкретно:

Устанавливает, сколько записей мы хотим просмотреть в сетке. Этот параметр передается URL-адресу для использования подпрограммой сервера, извлекающей данные. Обратите внимание, что если вы установите для этого параметра значение 10 (т. е. получите 10 записей), а ваш сервер вернет 15, то будут загружены только 10 записей. Установите для этого параметра значение -1 (неограниченно), чтобы отключить эту проверку.


Обновить

К сожалению, это поведение было нарушено в jqGrid 3.6.3. Согласно этому сообщению Тони:

Да, это правда. Причина в новой введенной прокрутке: 1. В будущем мы исправим это поведение.

Так что разработчики jqGrid знают об этой проблеме и, видимо, планируют исправить ее в будущем релизе. К сожалению, этот пост был год назад...

В настоящее время все, что я могу порекомендовать, это установить для rowNum очень большое число, чтобы имитировать поведение -1.


Вы также можете попробовать решение whatispunk ниже, используя rowNum: ''. Однако я попробовал это на сетке, содержащей локальные данные (loadonce: true). При попытке отсортировать строки все локальные данные сетки исчезнут. Таким образом, это решение не работает для сеток с локальными данными, если только этот дефект не был исправлен в более поздней версии jqGrid (я тестировал его на jqGrid 3.8.2). Если у вас есть отзывы, пожалуйста, оставьте комментарий ниже!


Обновление — 16 апреля 2014 г.

Согласно команде jqGrid теперь исправлено:

Я добавил поддержку для установки различных значений отображения в поле выбора пейджера, включая -1 для всех.

Однако у меня не было возможности проверить исправление. Предположительно это изменение будет в следующем релизе после jqGrid 4.6.0.

13.10.2009
  • Если вы установите rowNum: '', вы получите все строки. 24.08.2011
  • @Justin, зачеркивания в этом ответе сбивают с толку, а ваш действительный комментарий к решению скрыт. Я рекомендую не зачеркивать ваш кроссаут! :) 24.08.2012
  • Зачеркнутая часть моего ответа больше недействительна, поэтому она была зачеркнута. Я думаю, что было бы еще более запутанным, чтобы восстановить его. Я мог бы просто удалить его, но тогда правильный ответ был бы вне контекста, потому что мне пришлось бы объяснять, как изначально -1 использовалось для достижения этого решения. Я не знаю ... наверное, правильно было бы полностью переписать этот ответ в этом духе. 25.08.2012
  • У него есть неприятный баг, когда -1, если есть одна запись, использующая локальный массив, сетка пуста. 12.06.2018

  • 2

    jqgrid (в любом случае 3.5), похоже, не имеет элегантного встроенного способа сделать это. Лучшее, что я нашел до сих пор, это добавить что-то вроде следующего в параметры сетки:

    rowList:[10,20,30,100000000],
    loadComplete: function() {
        $("option[value=100000000]").text('All');
    },
    

    Где 100000000 — это произвольно большее число, чем максимальное число строк, которые вы когда-либо вернете, а строка option[value=] — это то, что ваш пользовательский интерфейс выглядит немного лучше. Дженки, но работает для меня.

    10.10.2009

    3

    если вы вообще не хотите использовать подкачку, измените код на стороне сервера, чтобы просто вернуть все строки. вообще не используйте параметр rows.

    если вы хотите иметь список строк, но также иметь возможность показать все, сделайте что-то подобное в свойствах сетки

    jQuery("#statement_mods").jqGrid({
      rowList:['ALL',30,50,100,200]
    });
    

    а затем в коде на стороне сервера убедитесь, что вы игнорируете параметр rows, если GET['rows']='ALL'

    11.08.2009
  • Вроде работает, но я получаю View NaN - NaN of 577 в правом нижнем углу. 16.08.2013

  • 4

    Это работает:

    // Step1 - defines the rows
    jqGridOptions.rowList =[10, 50, 100, 500, 'All'];
    ...
    ...
    // Step2 - Change the 'All' to a meaningful value 
    loadComplete: function (data) {
       $(".ui-pg-selbox option[value='All']").val(1000);
    }
    
    28.11.2013

    5

    настройка rowNum:-1 помогла мне

    26.01.2016

    6

    Если вы установили нумерацию страниц на панели навигации, вы также можете получить доступ к общему количеству строк, записанных в правой нижней части сетки, а затем добавить к сгенерированному параметру RowList.

    Сделайте что-нибудь вроде:

        // Get the total number of rows and delete space between numbers (Split the content of the div depending of the language (for me french)
    
    var val=jQuery("#pager_right div").text().split('sur')[jQuery("#pager_right div").text().split('sur').length-1].split(' ').join('');
    
        // And do the appending if the option isn't already added
    
    if(!$(".ui-pg-selbox option[value='"+val+"']").length > 0)
        jQuery(".ui-pg-selbox").append($('<option></option>').val(val).html(val));
    
    06.12.2012

    7

    Установка rowNum: ''вы получаете все строки.

    24.08.2011

    8

    У меня это работает:

    $('#bla').jqGrid({
            ...
            'rowNum'      : 0,
            'loadOnce'    : true,
            'loadComplete': function(data) {
                $(this).jqGrid('setGridParam', 'rowNum', data.total);
            },
            ...
    });
    

    Это работает как с параметром loadOnce, установленным в значение true, так и без него. Обратите внимание, что сначала вы должны установить для параметра rowNum значение 0, если вы пропустите этот параметр, по умолчанию все равно будет отображаться 20 записей. Кроме того, я предполагаю, что вы возвращаете общее количество строк с сервера в документированном формате чтения JSON.

    05.09.2013
  • data.total обычно представляет собой общее количество страниц. Это y страницы x из y. data.records — это общее количество возвращенных записей, независимо от того, сколько вы показываете. Это y вида x-z y. Вы хотите использовать data.records. 17.07.2018

  • 9

    разрешил это простым изменением: rowNum: inputDataArray.length

    где inputDataArray — это массив, который я передаю в Grid.

    27.12.2013

    10

    По умолчанию сетка JQ показывает максимум 20 строк, если вы не используете нумерацию страниц:

    // To over come with this problem ,you can just write the bold    mark
       (rowNum:10000,):
       $("#MasterDataDefinationGrid").jqGrid({
                url: 'FetchData.aspx/GetDataFromDB',
                datatype: 'json',
                mtype: 'POST',
                height: 300,
                autowidth: true,
                serializeGridData: function (postData) {
                    return JSON.stringify(postData);
                },
                ajaxGridOptions: { contentType: "application/json" },
                loadonce: true,
                colNames: [Your column names],
                colModel: [Your model],
                formatter: 'actions',
                pager: '#MasterDataDefinationPager', pgbuttons: false,pgtext:false,
                multiselect: false,
                ignoreCase: true,
                **rowNum: 10000,**
                loadtext: 'Loading ...',
                gridview: true,
                hidegrid: false,
                jsonReader: {
                    page: function (obj) { return 1; },
                    total: function (obj) { return 1; },
                    records: function (obj) { return obj.d.length; },
                    root: function (obj) { return obj.d; },
                    repeatitems: false,
                    id: "0"
                },
                caption: 'Data'
            });
    
    28.01.2016

    11

    Вы также можете зайти в jquery.jqGrid.js и изменить «rowNum: 20» на «rowNum: Some-Really-Large-Number». Когда вы определяете свой jqGrid, не указывайте rowNum. Затем верните весь набор данных обратно в jqGrid.

    10.08.2009

    12

    Даже если в документе все еще отображается, что вы не можете установить для rowNum значение -1, начиная с jqGrid 4.5.4, он снова работает (возможно, и в более ранней версии).

    15.10.2013

    13
    loadComplete: function (data) {
                    //set our "ALL" select option to the actual number of found records
                    $(".ui-pg-selbox option[value='ALL']").val(data.records);
    }
    

    Это изменяет параметр «ВСЕ» на фактическое количество записей в наборе данных.

    17.07.2018

    14

    Настройка rowNum:-1 работает для меня так, как будто после этого она показывала все записи, но у нее все еще была опция номера строки в нижнем колонтитуле сетки, например:

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

    Чтобы удалить это, я просто добавил опцию css для отображения none, получив сектор в jquery. Нравится

    $('#id_tableCell').css('display', 'none');
    

    Примечание. Эту настройку css следует выполнить после завершения загрузки сетки.

    03.06.2021
    Новые материалы

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

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

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

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

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

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

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


    © 2024 nano-hash.ru, Nano Hash - криптовалюты, майнинг, программирование