Cómo mostrar todas las filas en el jqGrid?


JqGrid expone una propiedad rowNum donde puede establecer el número de filas a mostrar para cada página. ¿Cómo se configura la cuadrícula para mostrar TODAS las filas?

Ahora mismo solo estoy configurando rowNum a algo realmente alto como <%= int.MaxValue %> pero me pregunto si hay una manera mejor.

Author: Justin Ethier, 2009-08-06

14 answers

En la última versión de jqGrid, puede establecer rowNum a -1 para indicar a la cuadrícula que muestre siempre todas las filas:

rowNum: -1

Vea la última documentación de jqGrid aquí.

Específicamente:

Establece cuántos registros queremos ver en la cuadrícula. Este parámetro se pasa a la url para que lo use la rutina del servidor que recupera los datos. Tenga en cuenta que si establece este parámetro en 10 (es decir, recupera 10 registros) y su servidor devuelve 15, solo entonces se cargarán 10 registros. Establezca este parámetro en -1 (ilimitado) para desactivar esta comprobación.


Update

Desafortunadamente este comportamiento se rompió en jqGrid 3.6.3. De acuerdo a este post de Tony :

Sí, esto es cierto. La razón es el nuevo pergamino introducido: 1. En el futuro corregiremos este comportamiento.

Así que los desarrolladores de jqGrid son conscientes de este problema y aparentemente están planeando solucionarlo en un futuro lanzamiento. Desafortunadamente este post era de hace más de un año...

En este momento, todo lo que puedo recomendar es que establezca rowNum a un número muy grande para simular el comportamiento de -1.


También puedes probar la solución de whatispunk a continuación de usar rowNum: ''. Sin embargo, probé esto en una cuadrícula que contiene datos locales (loadonce: true). Al intentar ordenar las filas, todos los datos locales de la cuadrícula desaparecerían. Por lo tanto, esta solución no parece funcionar para cuadrículas con datos locales, a menos que esto el defecto se ha corregido en una versión posterior de jqGrid (lo probé en jqGrid 3.8.2). Si usted tiene comentarios, por favor escriba un comentario a continuación!


Actualización-16 de abril de 2014

Según el equipo de jqGrid esto ahora está arreglado:

He agregado soporte para establecer diferentes valores de visualización en el cuadro de selección de buscapersonas, incluido -1 para todos.

No he tenido la oportunidad de probar para confirmar la solución, sin embargo. Presumiblemente este cambio será en el próximo lanzamiento después de jqGrid 4.6.0.

 53
Author: Justin Ethier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-16 13:45:36

Jqgrid (3.5 de todos modos) no parece tener una forma elegante de hacer esto. Lo mejor que he encontrado hasta ahora es agregar algo como lo siguiente a sus opciones de cuadrícula:

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

Donde el 100000000 es un número arbitrariamente mayor que el número máximo de filas que devolverá, y la línea de opción[value=] es para que su interfaz de usuario se vea un poco mejor. Jenky, pero funciona para mí.

 8
Author: C Dolan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-10 17:43:38

Si no desea usar paginación en absoluto, cambie el código del lado del servidor para simplemente devolver todas las filas. no utilice el parámetro rows en absoluto.

Si desea tener la lista de filas, pero también tiene una opción para mostrar todo, haga algo como esto en las propiedades de la cuadrícula

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

Y luego en el código del lado del servidor, asegúrese de ignorar el parámetro rows si OBTIENE ['rows'] = ' ALL '

 4
Author: Yashvit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-11 19:46:19

Esto funciona:

// 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);
}
 3
Author: avijendr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-17 16:30:03

Si ha establecido la paginación en la barra de navegación, también puede acceder al número total de filas escritas en la parte inferior derecha de la cuadrícula y luego agregarlas a la opción Lista de filas generada.

Haz algo como:

    // 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));
 2
Author: JULIEN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-17 09:07:08

Establecer rowNum:-1 hizo el truco para mí

 2
Author: Salty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-26 16:51:11
Jqgrid.PagerSettings.PageSize = Max Row you want to display;
Jqgrid.ToolBarSettings.ToolBarPosition = ToolBarPosition.Hidden;
 1
Author: Ankur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-24 05:07:50

Tengo esto funcionando:

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

Esto funciona con y sin la opción loadOnce establecida en true. Tenga en cuenta que primero tiene que establecer la opción rowNum en 0, si omite esta opción, seguirá mostrando los 20 registros por defecto. Además, asumo que está devolviendo el total de filas del servidor en el formato de lector JSON documentado.

 1
Author: lotjuh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-05 10:36:32

Resuelto con un simple cambio: rowNum: inputDataArray.longitud

Donde inputDataArray es la matriz que estoy proporcionando a la Red.

 1
Author: Nilesh Shukla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-27 19:07:06

También puede entrar en jquery.jqGrid.js y cambie "rowNum:20" a "rowNum: Some-Really-Large-Number". Cuando defina su jqGrid, no especifique rowNum. A continuación, devuelva todo el conjunto de datos a jqGrid.

 0
Author: Ron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-10 02:39:40

Setting rowNum: "obtienes todas las filas.

 0
Author: mikesigs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-24 16:49:01

Incluso si todavía aparece en el documento que no se puede establecer rowNum a -1 a partir de jqGrid 4.5.4 funciona de nuevo (tal vez en la versión anterior también).

 0
Author: DevAntoine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-15 08:33:31

De forma predeterminada, la cuadrícula JQ muestra un máximo de 20 filas, si está utilizando no está utilizando la paginación:

// 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'
        });
 0
Author: VCody,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-28 05:39:46
loadComplete: function (data) {
                //set our "ALL" select option to the actual number of found records
                $(".ui-pg-selbox option[value='ALL']").val(data.records);
}

Esto cambia la opción "TODOS" al número real de registros en el conjunto de datos.

 0
Author: Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-17 15:52:10