2009-08-07 9 views
6

Sono stato in grado di utilizzare il selettore di date in JQGrid durante la modifica in linea, ma non riesco a utilizzarlo nella finestra di aggiunta/modifica. Qualcuno ha istruzioni su come fare questo o un esempio che posso guardare?JQGrid/Data scelta all'interno della finestra Aggiungi/Modifica

demo da quel sito di quello che sto cercando di fare: http://www.the-di-lab.com/demo/apples

ho letto che ho potuto utilizzare il seguente metodo, ma non è sicuro come integrarla:

dataInit : function (elem) { 
$(elem).datepicker(); 
} 
+0

La cosa principale è quello di impostare z-index per datepicker. Vedi [questo] [1]. [1]: http://stackoverflow.com/questions/715677/trouble-with-jquery-dialog-and-datepicker-plugins/715695#715695 –

risposta

3

Sembra che siano usando 'afterShowForm' per allegare un selettore data/colore a un div.
(visualizza sorgente)

 
jQuery("#list").navGrid("#pager",{edit:true,add:true,del:true}, 
        {width:400,height:400,closeAfterEdit:true, 
      afterShowForm:function(){ $("#jsrs").load("/demo/apples/jsrs"); }, 
      onclickSubmit:function() { $("#jsrs").empty(); } 
}, 

(visualizza sorgente)

 
http://www.the-di-lab.com/demo/apples/jsrs 

//Js for colorPicker 
$('#color').ColorPicker({ 
    onSubmit: function(hsb, hex, rgb) { 
     $('#color').val("#"+hex); 
    }, 
    onBeforeShow: function() { 
     $(this).ColorPickerSetColor(this.value); 
    } 
}).bind('keyup', function(){ 
    $(this).ColorPickerSetColor(this.value); 
}); 


//Js for datePicker 
$('#date').DatePicker({ 
    format:'Y-m-d', 
    date: $('#date').val(), 
    current: $('#date').val(), 
    starts: 1, 
    position: 'bottom', 
    onBeforeShow: function(){ 
     $('#date').DatePickerSetDate($('#date').val(), true); 
    }, 
    onChange: function(formated, dates){ 
     $('#date').val(formated); 
    } 
    }); 

Grazie per la ricerca di questo esempio, ero alla ricerca di come fare questo pure.

+0

Grazie, si sta lentamente venendo insieme, il il codice jsrs viene attivato quando si apre la finestra ma sto ricevendo semplicemente il "$ (" # appuntamento "). DatePicker non è una funzione" (Ho cambiato le istanze di #date in #appointment poiché questo è l'id del campo desiderato) Tutti gli script necessari/ui sono lì per farlo funzionare al di fuori del popup, c'è qualcosa che devo fare che mi manchi? Grazie!! – kilrizzy

+0

Oh, ho solo bisogno di "datepicker" invece di "DatePicker" GRAZIE! – kilrizzy

15

Aggiunta datepicker è un compito facile:

colModel: [ 
    ... other column definitions ... 
    { 
    name:'my_date', index:'my_date', label: 'Date', width: 80, 
    editable: true, edittype: 'text', 
    editoptions: { 
     size: 10, maxlengh: 10, 
     dataInit: function(element) { 
     $(element).datepicker({dateFormat: 'yy.mm.dd'}) 
     } 
    } 
    }, 
    ... other column definitions ... 
] 

Di couse, invece di .datepicker è possibile utilizzare qualsiasi plugin come colorpicker o di completamento automatico.

+0

-1, ci sono diversi errori in là ... e quel codice non sembra funzionare nemmeno dopo aver corretto gli errori – Fragsworth

+0

+1, Grazie per aver sottolineato il 'editoptions.dataInit'; quello era il pezzo mancante per far funzionare il mio montaggio in linea. –

+0

Brillante. Per me va bene! – AnonyMouse

1

Usa questo codice per aggiungere datepicker per creare dialogo/edit:

.navGrid('#yourID', 
       { edit: true, add: true, del: true, search: true }, //options 
       { 
        ... 
        onInitializeForm: function() { 
         $('#yourDate').datepicker(); 
        }, 
        onClose: function() { 
         //if you close dialog when the datepicker is shown 
         $('.hasDatepicker').datepicker("hide") 
        } 
       }, 
       ... 
+0

Funziona molto bene – Cruachan