2011-11-16 14 views
5

¿Es posible hacer la primera columna de un SlickGrid arreglado? ¿Para que siempre esté visible durante el desplazamiento horizontal, como la fila de encabezado?SlickGrid con la primera columna fija

¡Gracias por la ayuda!

+0

así que no encontré nada en la fuente (versión SlickGrid v2.0 alpha). Tal vez la respuesta es simplemente "no". – user1027167

+1

Thee es una respuesta a la misma pregunta del autor de SlickGrid aquí: http://groups.google.com/group/slickgrid/browse_thread/thread/ba6a85279f3cfd5f – njr101

Respuesta

5

Creo que se puede hacer en caso .onViewportChanged() los siguientes pasos:

  1. Obtener las columnas con .getColumns() y se almacena en una variable de matriz arrColumns.
  2. Luego, detecte la primera columna.
  3. almacenar los datos con .getData() en una matriz de variables arrData
  4. Ordenar arrColumns poner la primera columna al principio.
  5. Establecer las columnas de la nueva arrColumns con .setColumns()
  6. reensamblado arrData con el orden de la nueva arrColumns.
  7. Llamar .resizeCanvas()
  8. Cruce los dedos. : D

Lo siento pero no encuentro un método o una opción para que pueda realizar este comportamiento de la manera que desee.

Bueno, mira lo que piensas de this. Está lejos de ser perfecto, pero es una idea. Haría algo mejor si el método scrollTo() fuera público.

+0

Gracias por sus consideraciones :) pero creo que eso no es muy bueno ... – user1027167

+0

¿Por qué no intentar y hacer algunas pruebas? – Galled

+0

no muy eficiente porque tiene que manejar todos los datos de la grilla. siguiente problema: el desplazamiento horizontal se realiza píxel por píxel y no columna por columna. – user1027167

0

Sé que esto no coincide completamente con sus necesidades, pero puede evitar completamente el desplazamiento horizontal estableciendo forceFitColumns en verdadero en el objeto de opciones.

Supongo que este comportamiento sería indeseable para usuarios con una pantalla muy pequeña.

+0

No, necesita algo como congelar paneles en Excel. – Galled

+1

De ahí la primera frase en mi respuesta ... – vemv

11

Hubo otro enlace al foro (no lo puedo encontrar ahora) que conduzca a JLynch's fork. Mantiene una etiqueta 1.4.3 con sus parches para columnas y filas congeladas, además de mantener una cabecera 2.0. Aquí está el ejemplo 2.0 con ambos frozen rows and columns.

En este ejemplo, el autor utiliza un par de propiedades de opciones adicionales:

 ,topPanelHeight: 25 
     ,frozenColumn: 2 
     ,frozenRow: 5 

Esperamos que esto hace lo que quiere sin tener que cortar demasiado en el núcleo!

+0

slickgrid.js es diferente de lo normal, es difícil actualizarlo con la nueva versión de Slickgrid. Deberíamos encontrar otra manera. – Stiger

Cuestiones relacionadas