select extjs grid extjs4 nested

¿Qué función estándar de ExtJS 4.2 se ejecuta para la selección de cuadrícula al usar Ext.selection.RowModel(predeterminado) selModel?



grid extjs4 (2)

¿Cómo cargaste el modelo de selección?

selModel: ''rowselection'',

O

selModel: Ext.create(''Ext.selection.RowModel''),

Si usa la primera sintaxis, debe obtener un modelo de selección independiente para cada cuadrícula. Si usa la segunda sintaxis, solo obtiene un modelo de selección que se comparte entre todas las instancias de la cuadrícula.

Existe un error en la forma en que funciona el complemento Ext.grid.Panel rowexpander cuando una grilla anidada está configurada para renderizar en la identificación div rowexpander.

Cuando esto se implementa, es difícil ver lo que realmente se está seleccionando. La razón de esto es porque las configuraciones "disableSelection" y "trackMouseOver" se deben considerar para resaltar. Tengo que establecer "trackMouseOver: false" para que al pasar el ratón sobre las filas de la grilla no interfiera con la reproducción de este comportamiento. Luego debe establecerse "disableSelection: false" para que este problema de selección ocurra realmente.

El problema es que cuando selecciona el índice 1 de la cuadrícula anidada de la cuadrícula matriz, el índice 0 fila, también se selecciona la fila índice 1 de la cuadrícula principal. Si selecciona el índice 2 de la cuadrícula anidada de la cuadrícula matriz, el índice 0 fila, también se selecciona el índice 2 de la cuadrícula principal.

Cuando se selecciona 935424, se selecciona 815138 ya que ambos son el índice 0.

Cuando se selecciona 1056257, se selecciona 1013525 ya que ambos son el índice 1.

Cuando se selecciona 1200191, se selecciona 1261631 ya que ambos son el índice 2.

Sospecho que la instancia del modelo de selección podría estar siendo compartida con la grilla y las grillas anidadas, ya que estoy usando la misma definición. Por supuesto, son ejemplos diferentes de la misma definición, pero no estoy seguro de cómo maneja el marco las cuadrículas adicionales utilizando Ext.create.

Me gustaría preguntarle cómo arreglarlo o acercarme, le votaré (a menudo). Pero si al menos puede darme una pista sobre dónde se llama esta función de selección en el marco, eso me llevará por el camino correcto y puede depurar y descubrir una solución para ello. He leído que los eventos pueden burbujear, y tal vez eso es lo que está sucediendo aquí. También parece tener un identificador en la fila, porque cuando hago doble clic en la fila de la grilla anidada, no solo trata de expandir esa fila, sino también la fila de la fila de la cuadrícula principal (que coincide con el índice de la fila).


Después de que se crea cualquier cuadrícula anidada recursiva, tuve que llamar a esta línea para que los eventos de clic y dblclick (y otros) no burbujeen / se propaguen a la cuadrícula principal.

grid[cnt].getEl().swallowEvent([''mouseover'', ''mousedown'', ''click'', ''dblclick'', ''onRowFocus'']);