javascript jquery jqgrid rowcount

javascript - ¿Cómo mostrar todas las filas en el jqGrid?



jquery rowcount (14)

Configuración de rowNum:-1 hizo el truco para mí

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

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


Configuración de rowNum: '''' obtienes todas las filas.


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); }


Incluso si aún aparece en el documento que no puede configurar rowNum a -1 a partir de jqGrid 4.5.4, funciona de nuevo (quizás también en una versión anterior).


Por defecto, la cuadrícula JQ muestra 20 filas Máx., Si no está usando 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'' });


Si ha configurado 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 agregarla a la opción RowList generada.

Hacer 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));


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

Si desea tener la lista de filas pero también tiene la opción de 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 servidor, asegúrese de ignorar el parámetro de las filas si GET [''rows''] = ''ALL''


También puede ingresar a jquery.jqGrid.js y cambiar "rowNum: 20" a "rowNum: Some-Really-Large-Number". Cuando defina su jqGrid, no especifique rowNum. Luego, devuelva su conjunto de datos completo a jqGrid.


Tengo este trabajo:

$(''#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 verdadero. Tenga en cuenta que primero debe establecer la opción rowNum en 0; si rowNum esta opción, seguirá mostrando por defecto los 20 registros que se mostrarán. Además, asumo que está devolviendo las filas totales del servidor en el formato documentado del lector JSON.


jqgrid (3.5 de todos modos) no parece tener una forma elegante de hacerlo. 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 100000000 es un número arbitrariamente más alto que el número máximo de filas que alguna vez retornará, y la línea de la opción [valor =] es para que su interfaz de usuario se vea un poco mejor. Jenky, pero trabaja para mi.


resuelto con un simple cambio: rowNum: inputDataArray.length

donde inputDataArray es la matriz que estoy proporcionando a la cuadrícula.


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

rowNum: -1

Vea la última documentación de jqGrid here .

Específicamente:

Establece cuántos registros queremos ver en la cuadrícula. Este parámetro se pasa a la url para que lo utilice 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, entonces solo se cargarán 10 registros. Establezca este parámetro en -1 (ilimitado) para deshabilitar esta comprobación.

Actualizar

Desafortunadamente este comportamiento se rompió en jqGrid 3.6.3. Según este post de Tony :

Sí, 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, planean solucionarlo en una versión futura. Lamentablemente este post fue de hace más de un año ...

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

También puede probar la solución de rowNum: '''' continuación del uso de 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. Entonces, esta solución no parece funcionar con grillas con datos locales, a menos que este defecto se haya corregido en una versión posterior de jqGrid (lo probé en jqGrid 3.8.2). Si tiene comentarios, por favor publique un comentario a continuación!

Actualización - 16 de abril de 2014

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

He añadido soporte para establecer diferentes valores de visualización en el cuadro de selección de localizador, incluido -1 para todos.

Sin embargo, no he tenido la oportunidad de probar para confirmar la solución. Presumiblemente este cambio estará en la próxima versión después de jqGrid 4.6.0.


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 "TODO" al número real de registros en el conjunto de datos.


Jqgrid.PagerSettings.PageSize = Max Row you want to display; Jqgrid.ToolBarSettings.ToolBarPosition = ToolBarPosition.Hidden;