Codeigniter y DataTables.net (Server Side)

862 views
Skip to first unread message

Oscar Andres Argueyo

unread,
Oct 31, 2012, 10:04:48 AM10/31/12
to codeignit...@googlegroups.com
Hola que tal, como siempre preguntando al grupo cada vez que me atasco con mi codigo en alguna parte!

Estoy implementando Datatables.net para un crud que estoy haciendo! Pude hacerlo andar con el ejemplo basico con todos los registros para mi tabla de usuarios! Con buscador en vivo y el ordenamiento por columna! Pero lei en la documentacion que para cierta cantidad de registros el datatables comun de jquery no sirve(o no esta recomendado)! Y este crud esta diseñando para esperar tener casi 200.000 registros en  6 meses. por lo que necesitaria hacer con cada paginacion un llamado al metodo de mi controlador! 


Alguno ha usado la libreria que esta disponible para Codeigniter? O se ha enfrentado con este problema! 
En si lo que me mas me importa es el buscador en vivo pero que se haga sobre el mismo table.
Estoy intentando los ejemplos de la documentacion y no me funciona de ninguna forma!

Espero haberme hecho entender!

Saludos desde Buenos Aires y que tengan un buen dia!

Roberto Moreno P.

unread,
Oct 31, 2012, 10:07:35 AM10/31/12
to codeignit...@googlegroups.com
Es posible que subas los ejemplos que realizas a un repositorio github, asi generamos un grupo de estudio.

Saludos


--
 
 



--
Roberto Andrés Moreno Pérez

Carlos Mora

unread,
Oct 31, 2012, 5:12:13 PM10/31/12
to codeignit...@googlegroups.com
>> Espero haberme hecho entender!
Se entendió todo! Salvo la cantidad de exclamaciones! Me sorprendiste!!!!
Wow!
El problema no es el llamado al controlador, es que la query no es lo
suficientemente selectiva! Podrías buscar alguna forma de filtrar los
resultados, seguramente! Paginar 200Kregistros hace que la
visualización tenga poco sentido, !, tal vez poner un filtro previo de
los datos a visualizar ayude mucho.

!
¿!?

Eduardo Passarelli

unread,
Oct 31, 2012, 7:54:40 PM10/31/12
to codeignit...@googlegroups.com
Yo intente usar DataTables pero efectivamente como bien decis,
superando algo asi como los 1000 registros ya derrapa.

He visto en su documentacion que lo que en realidad habria que hacer
es que la paginacion sea asincronica y calculo que la busqueda
tambien.

Traer los registros a medida que se solicitan pero bueno, habra que
ver si realmente la cosa es asi.

Me adhiero a intentar verlo entre todos porque realmente es algo muy util.

Fijate que con GroceryCrud creo que pasa algo parecido.

marcelo gutierrez

unread,
Oct 31, 2012, 10:28:51 PM10/31/12
to codeignit...@googlegroups.com
Perdon por descolgado XD....
Pero que intentan resolver?



--





--
Marcelo Gutierrez

Oscar Andrés Argueyo

unread,
Oct 31, 2012, 11:00:19 PM10/31/12
to codeignit...@googlegroups.com
Tratar de armar un datatable en CI por ajax. Esta el tipico ejemplo pero que es solo con jquery y hace la paginacio y la busqueda en todo los registros de la consulta.
El tema es que cuando llega cierta cantidad de registros la documantacion dice que tiene que hacerse por ajax porque sino no es eficiente.
el ejemplo que da la Doc de Datatables es el siguiente:
http://www.datatables.net/release-datatables/examples/server_side/server_side.html 

Yo estuve intantando hacerle los controladores y los modelos pero no me lograba devolver los registros. Solo mostraba el contorno de la tabla.

Estuve revisando tambien la libreria hecha para CI llamada Ignited-Datatables pero todavia no me sente con el suficiente tiempo para armar algo.

Concuerdo en que estaria bueno armar un ejemplo de algo que es tan necesario para cualquier aplicacion. Y dejar el ejemplo para futuras busquedas.

mañana me pondre a trabajar temprano para poder sacar algo funcional en primer lugar y luego dando paso a los detalles.No es algo imposible.
Gracias por las respuestas y un saludo desde Buenos Aires.





Date: Wed, 31 Oct 2012 23:28:51 -0300
Subject: Re: [codeigniter-spanish] Codeigniter y DataTables.net (Server Side)
From: marce...@gmail.com
To: codeignit...@googlegroups.com
--
 
 

marcelo gutierrez

unread,
Nov 1, 2012, 12:12:58 AM11/1/12
to codeignit...@googlegroups.com
Eso es muy interesante... de hecho aqui hemos adoptado a CI como framework de desarrollo, en "aqui" me refiero al lugar donde trabajo...
CI salio ganando frente a Zend y Cake, no por razones de preferencia o eficiencia, pero si porque es muy facil de aprender y de comprender com poco esfuerzo el tema del patron MVC.

Luego de esta breve intro paso a describir como evolucionamos, digo evolucionamos porque fuimos aprendiendo e incorporando lo que cada uno sabia de esto en CI.

Despues de varias pruebas, y discuciones muy acaloradas (jeje hasta el mas tranqui estaba efurecido). Vimos el tema del Grid de Grocery pero no nos cerraba por el hecho de que el patron de ABM que teniamos en mente no encajeba del todo y no resultaba muy practico al momento de aplicarlo a apps mas complejas.

Por eso, nos pusimos a reinverntar la rueda (algo un poco extraño a esta altura) pero es la rueda que necesitabamos, asi que me puse al frente de todo este desarrollo/investigacion y fuimos avanzando por partes,

Primero un Grid Hecho con CI (capaz es un pto debil construir todo un XHTML en el server con PHP) donde agregue una clase que extiende la clase paginator de CI, con este bloque construido y funcionando (Obvio hasta ahi puro PHP sin ajax). Pase a la parte de JQuery, en JQuery intente integrar todo un comportamiento de navegabilidad entre el Grid, el paginador y los formularios del ABM. Bueno con toda esa ensalada quedo una cosa asi:

1 - Una libreria Grid integrada con el paginator que se instancia desde el controlador que lo ejecuta, similar al constructor del paginador cn un par de agregados extra.
2 - El controller que gestiona el listado utilizando el metodo POST
3 - El modelo encargado de traer los datos
4 - La vista receptora del grid, en donde se instancia un plugin de Jquery que desarrolle, y luego perfeccionamos, que es el que se encarga de gestionar la grilla-paginacion-busqueda-formsABM

No creo que sea tan magico como el grd del grocery ni mucho menos como el del ejemplo, pero nos dio buenos resultados.

Algo si a tener en cuenta y es la manera y la forma de presentar los registros en un Grid de Datos y es algo personal (o sea mi opinion basada en mi experiencia) y es que mostrar 1K 0 2K de registros en una pantalla es algo un poco exagerado. Ya un dropdown list de 100 elementos! es totalmente engorroso y pesado de generar, imaginense un grid de ese calibre. De hecho, la semana pasada nos pidieron un reporte en de uno de los sistemas que damos soporte, y la cuestion es que la query lanzaba mas o menos 20.000 regs. no es mucho si uno piensa en alguna BD de grueso calibre pero si uno piensa en que esa info la debe manejar una persona, creo que se vuelve inmanejable, y de hecho impractica.


Bueno saludos y perdon por tanta perorata pero al ver que esta discusion estaba muy interesante decidi contarle mi experiencia y la de mis compañeros que colaboraron en esto que les conte. PERDON sin no les solucione nada pero me tente en contar esto.

Ahhh... como para preguntar algo yo... tambien medio descolgado... Ustedes que prefieren a la hora de implementar un Web Service: RESTFul o SOAP (Bueno creo que en el fondo tiene que ver con lo que estamos debatiendo aqui)

SALUDOS



--
 
 



--
Marcelo Gutierrez

Juan Manuel Castro

unread,
Nov 1, 2012, 9:03:42 PM11/1/12
to codeignit...@googlegroups.com
Hola a todos .....

No han probado con http://flexigrid.info/ yo estoy trabajando en un projecto e implementamos esta libreria con busquedas avanzadas, etc.
Hasta ahora tengo 20.000 registros y los carga en menos de 15 segundos paginados y todo.

Si le interesa puedo brindarles los files modificados de la libreria con la implementacion de la misma con CI.-

Quedo a vuestra disposicion. Saludos, atentamente.-

--
     Juan Manuel Castro
     Solis 168 - C.P. 2705
     Rojas - Buenos Aires
Tel. 54 - 02474-15-56-4189

Ivan Zenteno

unread,
Nov 1, 2012, 11:07:51 PM11/1/12
to codeignit...@googlegroups.com, codeignit...@googlegroups.com
Yo creo que no debes de preguntar, con sólo decir el URL del git basaría así dejas a que en un futuro alguien lea este thread y se vaya a tu git y ver el source.

Saludos 
--
 
 
Reply all
Reply to author
Forward
0 new messages