SlickGrid - aplicando getItemMetadata haciendo que la fila pierda su id

Tengo el siguiente problema:

>>>>>>> Enlace a una demostración de JsFiddle >>>>>>

He usado el ejemplo de colapsoy agregó el método getItemMetadata.

dataView.getItemMetadata = function (row) {
        var thtId = data[row].id;
        if (data[thtId + 1] && data[thtId + 1].indent > data[thtId].indent) {
            return { 'cssClasses': 'parentClassName' }
        }
    };

Esto funciona bien hasta que intento colapsar y expandir mis filas. Entonces recibo el siguiente error (solo al expandir):

Error de tipo no detectado: no se puede leer la propiedad 'id' de indefinido

Según mi experiencia, este error se acumula cuando dataView pierde las propiedades de los niños. Investigué más y vi que el código caía en el appendRowHtml función (slick.grid.js#1217).

¿Alguien tiene experiencia con la función de colapso y getItemMetadata?

¡Gracias!

preguntado el 12 de junio de 12 a las 16:06

1 Respuestas

Solución en manos de @Tin, creador de SlickGrid

La excepción ocurre en "var thtId = data[row].id", donde "row" está fuera de los límites. Debe verificar si "datos [fila]" existe antes de acceder a la propiedad "id". La cuadrícula solicita metadatos para una fila inexistente, lo que podría interpretarse como un error, pero aún así es útil poder personalizar la última fila vacía (la que se usa para agregar nuevas entradas), por lo que tiene sentido .

https://groups.google.com/forum/#!topic/slickgrid/65vPmzXsLMQ

Respondido el 12 de junio de 12 a las 21:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.