PDA

View Full Version : DataTables e CRUD per operazione di modifica


robertino_salemi
03-03-2014, 17:22
Salve a tutti,
sto usando DataTables (http://www.datatables.net/) per la visualizzazione dei miei dati, vorrei integrare XCRUD (http://jquery-datatables-editable.googlecode.com/svn/trunk/index.html) per le operazioni di modifica.

Fino ad ora:
- ho incluso il file: jquery.dataTables.editable.js (http://jquery-datatables-editable.googlecode.com/svn/trunk/media/js/jquery.dataTables.editable.js)
- instanzio il mio DataTables (con i vari parametri che mi servono) e si vede correttamente:

tables.dataTable();

se vado a dichiarare (al posto del codice sopra)

tables.dataTable().makeEditable();

la console di Firebug mi restituisce:

TypeError: $(...).live is not a function
$(".table-action-deletelink", tables).live("click", _fnOnRowDeleteInline);


Come mai?
Manca altro secondo voi?

Grazie.

Daniels118
04-03-2014, 07:47
Non ho esperienza con questo plugin, ma la prima cosa che mi suggerisce quell'errore è che non hai incluso qualche file javascript.
Hai incluso tutti i file indicati qui http://code.google.com/p/jquery-datatables-editable/wiki/HTMLSource ?
<script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.DataTables.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.jeditable.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="/Scripts/jquery.DataTables.editable.js" type="text/javascript"></script>

robertino_salemi
04-03-2014, 09:20
Si, i file Js sono sono stati inclusi tutti.

Ho associato un ID alla mia tabella.

Ho inserito:

<div class="add_delete_toolbar"></div>

per la visualizzazione dei relativi Button.

Ma la cosa strana riguarda proprio l'errore restituito in jquery.dataTables.editable.js

TypeError: $(...).live is not a function
$(".table-action-deletelink", oTable).live("click", _fnOnRowDeleteInline);


:muro:

Tuvok-LuR-
04-03-2014, 09:49
.live() è un vecchio metodo jQuery ormai deprecato, è stato tolto diverse versioni fa e adesso si fa tutto con .on()
$(oTable).on("click", ".table-action-deletelink", _fnOnRowDeleteInline);
se ti serve proprio live usa una vecchia versione di jQuery o aggiungi il plugin migrate a quella che hai

robertino_salemi
04-03-2014, 11:00
Quell'errore appartiene proprio alla libreria jquery.dataTables.editable.js.

Comunque ho cambiato nella stringa il .live .on e funziona :eek:

robertino_salemi
05-03-2014, 14:35
Questa libreria restituisce ancora tantissimi errori, alla chiusura del form, alla conferma dei dati...io sto usando al 2.3.3 e credo che sia l'ultima.

Sapere se c'è una versione più recente?

Grazie.

Daniels118
05-03-2014, 14:53
Invece di modificare la libreria, prova ad utilizzare una versione precedente di jQuery come ti è stato già suggerito.

robertino_salemi
05-03-2014, 15:51
Purtroppo non è così semplice, io sto usanto jquery-1.11.0.min.js e lui propone l'utilizzo di jquery-1.4.4.min.js! :muro:

Daniels118
06-03-2014, 07:43
Ed è un problema per te passare alla versione indicata?

robertino_salemi
06-03-2014, 08:35
Si, ho già fatto un test e molti metodi di jquery non vanno.

Daniels118
06-03-2014, 08:38
Hai provato con il plugin migrate?

robertino_salemi
06-03-2014, 08:54
Cioè?

Daniels118
06-03-2014, 12:13
E' un plugin che reintroduce in jQuery le funzioni rimosse con le nuove release al fine di consentirne la compatibilità con i plugin che ne fanno uso e che non sono stati ancora adeguati.

robertino_salemi
06-03-2014, 17:14
Molto problemi sono stati risolti usando la versione 1.9.0 al posto della 1.9.4 (presenta diversi BUG segnalati anche da altri utenti).

Daniels118
07-03-2014, 07:40
Quindi hai risolto?

robertino_salemi
07-03-2014, 08:30
Grosso modo si... dovrei fare qualche altro test!