2010-09-16 29 views
16

Parece que las propiedades jqGrid sortname y sortorder en realidad no hacen que su conjunto de datos sea ordenado, solo hacen que aparezcan las flechas arriba/abajo.jqGrid orden de clasificación predeterminado?

¿Cómo se puede obtener su conjunto de datos para ordenar en la descarga?

El ordenamiento funciona bien cuando hace clic en los encabezados de las columnas, pero quiero que se aplique una clasificación predeterminada a nuestros datos.


Actualización: Cuando hacemos clic en el botón siguiente, la siguiente solicitud ordena los datos.

Esto provoca una interfaz de usuario ligeramente confusa donde los datos se cargan con una flecha hacia abajo en una columna y los datos no se ordenan, pero cuando se hace clic en siguiente, los datos se ordenan ahora.

Parece que omito sortname y sortorder que jqGrid todavía muestra el icono de ordenar - raro.

Respuesta

2

Intente utilizar

$("#list").jqGrid('setGridParam',{ page: 1 }).trigger("reloadGrid"); 

o

$("#list").jqGrid('setGridParam',{ rowNum: 10 }).trigger("reloadGrid"); 

(reemplace 10 con el valor que se define como parámetro ROWNUM). Si no es de ayuda, publique su código en su pregunta.

+0

¿Está sugiriendo que carguemos la grilla dos veces? ¿La carga inicial (no ordenada) y una segunda carga que con suerte se ordenarán? –

+0

@Marcus: No inserta ningún código en su pregunta, así que tengo que adivinar qué hace. Si carga los datos JSON o XML del servidor, el servidor ordena los datos, por lo que debe corregir el código del servidor. Si carga los datos de la fuente local o carga desde el servidor como ** sin clasificar ** con "loadonce: true", debe ** ordenar ** los datos una vez. Para hacer esto, debe actualizar los datos mostrados en la página actual de la grilla. Puede hacer esto con respecto a 'trigger (" reloadGrid ")' - en el caso de datos locales, solo está "refrescando" la página actual. A veces, configurar parámetros como 'page' o' rowNum' ayuda – Oleg

+0

Estamos cargando datos sin clasificar del servidor con 'loadonce: true'. Probaré 'trigger ...' –

1

el problema es (creo) que el sortName parámetro ni SIDX se leen al solicitar el primer conjunto de datos

2

Es posible que haya cometido el mismo error que yo, que iba a basar mi script de cliente fuera de un viejo ejemplo, que utiliza "sortName" en lugar de "sortName"

+0

Esta es la respuesta correcta. Mi cuadrícula está pasando los criterios de clasificación la primera vez que solicita datos. Las propiedades son sortname y sortorder. – jfren484

0

/respuesta con queso Alerta

Por qué no oculta el icono ordenada la primera vez que se carga? La primera vez que alguien clasifica, lo muestra y las cosas funcionan como se esperaba. Parece que fue su intención cargar sin clasificar hasta que el usuario elija una columna para ordenar.

+0

Estoy de acuerdo con esta solución ... ordena la primera vez usando el código del lado del servidor para que se muestre con precisión cuando se carga si quieres que se clasifique inicialmente. Establezca la columna de búsqueda predeterminada u oculte/muestre (http://stackoverflow.com/questions/2601476/is-it-possible-to-hide-or-manipulate-the-jqgrid-sort-icons) la columna de clasificación después del el usuario decide ordenar según la dirección en que vaya. –

13

Puede estar dando el mismo parámetro dos veces (un error muy común al copiar pegar programación :) sin ofensas. Lo hago también.)

Digamos que desea ordenar OpeningDate descendente

..... options .... 
sortname: "OpeningDate", 
sortorder: "desc", <---- assume you write this line and expect to sort descending 
..... some other options .... 
sortorder: "asc", <---- and this line may also be there but you may not be noticing it 
..... and other options .... 

la segunda opción "SortOrder" prevalece sobre el primero y usted no será capaz de ordenar descendente

7

que estaba frente el mismo problema. Utilice esta después de cargar los datos de:

$("#tableId").jqGrid('sortGrid','colName', false, 'asc'); 

o

$("#tableId").sortGrid('colName', false, 'asc'); 

La rejilla se vuelve a cargar si el valor booleano se establece en true. El último parámetro puede ser 'asc'/'desc', según el orden de clasificación.

Cuestiones relacionadas