ext example column actioncolumn extjs grid

column - extjs grid example



Desplácese a la selección en una cuadrícula ExtJS (8)

Oye, necesito poder desplazar mi cuadrícula ExtJS a la selección actual, pero no tengo idea de cómo hacer esto. Encontré una referencia en un foro para un método de EnsureVisible pero no puedo encontrar información. ¿Alguien puede hacer alguna sugerencia? Gracias


Lo siento, estoy siendo realmente tonto. Acabo de probar EnsureVisible y funciona bien.


Esto también parece funcionar:

grid.getView().getRow(rowIdx).scrollIntoView();


Esto también parece funcionar:

grid.getView().focusRow(rowIdx);


Lamentablemente, ensureVisible () se eliminó de ExtJS 4. La solución más simple que encontré es usar scrollIntoView (). En mi caso, esto fue después de seleccionar la fila en función de un valor que cargué.

var rowIndex = store.find(''fieldName'', value); grid.getSelectionModel().select(rowIndex); Ext.fly(grid.getView().getNode(rowIndex)).scrollIntoView();

Esto mostrará la fila seleccionada en la parte inferior de la grilla. Se necesitaría más trabajo para tenerlo en la parte superior o central de la grilla.


Esto también parece funcionar

grid.getView().getNode(rowIndex).scrollIntoViewIfNeeded();

En el caso de ExtJs 4.X No es necesario usar Ext.fly


Para ahorrarte un montón de tirar del pelo, debes saber que las soluciones en este hilo para desplazarte a la vista no funcionarán si el rejilla bufferRenderer está encendido.

Entiendo que en Ext JS 5, bufferedRenderer está activado por defecto.

Me tomó un par de horas antes de darme cuenta de esto.

grid.getView (). getNode (rowIndex) devolverá NULL si la fila indexada está fuera de las filas almacenadas.


Trabajé para mí en ExtJS 6, incluso con bufferedRenderer activado.

var record = grid.getSelectionModel().selected.getRange()[0]; grid.getView().focusRow(record);


En 4.2 al menos, el uso de scrollIntoViewIfNeeded falla si se encuentra fuera del rango de búfer en un bufferRenderer. El bufferedRenderer tiene un práctico método scrollTo para ayudar con esta tarea:

grid.getView().bufferedRenderer.scrollTo(index, true);

Se desplaza y selecciona de manera opcional el índice de fila especificado en el conjunto de datos total.

http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.grid.plugin.BufferedRenderer-method-scrollTo