Punto de interrupción de Slickgrid en el filtro

Mirando los ejemplos de Slickgrid y usando Google Chrome, estoy configurando un punto de interrupción en el filtro para ver qué sucede internamente. El punto de interrupción funciona bien en la línea 87 http://mleibman.github.com/SlickGrid/examples/example-header-row.html

pero no funciona en la línea 143

http://mleibman.github.com/SlickGrid/examples/example4-model.html

¿Por qué no?

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

3 Respuestas

Esto está sucediendo porque el segundo ejemplo está configurando el inlineFilters opción del DataView a verdadero en el constructor, mientras que el primero no lo es. Lo que eso significa es que, en el segundo ejemplo, SlickGrid vuelve a compilar su función de filtro y la inserta en el ciclo para evitar la sobrecarga de la llamada a la función. Esto acelera significativamente el filtrado en grandes conjuntos de datos.

Si desea depurarlo, establecer un punto de interrupción no funcionará. Necesitas agregar un debugger declaración dentro de la propia función de filtro.

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

La inlineFilters: true no funciona para mi filtro pero lo hace con inlineFilters:false ¿algunas ideas? Mi código es muy similar a example4 - mamada

Aunque ejemplo4 establece el myFilter funciona como el filtro dataView, el filtrado se logra a través del control deslizante y el cableado de eventos del cuadro de texto; verifique las líneas 288 y 303 para lo mismo. Los puntos de interrupción del filtro en estos deberían funcionar como se esperaba.

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

gracias por la respuesta, pero eso no es lo que estoy buscando. Necesito que el punto de interrupción se detenga en la función que realmente está decidiendo qué es una coincidencia. - Homer

Luego deshabilite el cableado de eventos en 288 y 303. Esas funciones anulan su función myFilter. Además, ¿por qué no puede encontrar lo que se compara en las líneas 288 a 303? - Ganeshk

Eso no es todo, esos eventos solo están ahí para configurar los parámetros de filtro que utilizan myFilter. De todos modos, encontré el problema. Línea 197: dataView = new Slick.Data.DataView({ inlineFilters: true }); Cuando se inicializa dataView, el inlineFilters flag hace que dataView "compile" el filtro, por lo que no se llama a la función de filtro original. Se utiliza la nueva función "compilado". - Homer

Filtro compilado.

Línea 197 en ejemplo 4: dataView = new Slick.Data.DataView({ inlineFilters: true });

Cuando se inicializa dataView, el indicador inlineFilters hace que dataView "compile" el filtro, por lo que no se llama a la función de filtro original. Se utiliza la nueva función "compilado".

Ver línea 201 y 466 en slick.dataview.js para el código en los filtros cumplidos.

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

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