2009-08-07 4 views
6

J'ai pu utiliser le sélecteur de dates dans JQGrid lors de la modification en ligne, mais je ne peux pas l'utiliser dans la fenêtre d'ajout/édition. Est-ce que quelqu'un a des instructions sur la façon de faire cela ou un exemple que je peux regarder?JQGrid/Date sélectionnée dans la fenêtre Ajouter/Modifier

démo de ce site de ce que je suis en train de faire: http://www.the-di-lab.com/demo/apples

Je lis que je pouvais utiliser la méthode suivante mais ne savez pas comment l'intégrer:

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

La chose principale est de définir z-index pour datepicker. Voir [ceci] [1]. [1]: http://stackoverflow.com/questions/715677/trouble-with-jquery-dialog-and-datepicker-plugins/715695#715695 –

Répondre

3

On dirait qu'ils sont en utilisant 'afterShowForm' pour attacher un sélecteur de date/couleur à un div.
(voir la source)

 
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(); } 
}, 

(voir la source)

 
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); 
    } 
    }); 

Merci pour avoir trouver cet exemple, je cherchais comment faire aussi bien.

+0

Merci, il est lentement en place, la Le code jsrs est déclenché lorsque la fenêtre s'ouvre mais je reçois juste le "$" (rendez-vous) ". DatePicker n'est pas une fonction" (J'ai changé les instances de #date en #appointment puisque c'est l'identifiant du champ désiré Tous les scripts/ui nécessaires sont là pour le faire fonctionner en dehors du popup, Y at-il quelque chose que je dois faire que je pourrais manquer? Je vous remercie!! – kilrizzy

+0

Oh j'avais juste besoin de "datepicker" au lieu de "DatePicker" MERCI! – kilrizzy

15

Ajout datepicker est une tâche 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 ... 
] 

de couse, au lieu de .datepicker vous pouvez utiliser un plugin comme colorpicker ou saisie semi-automatique.

+0

-1, Vous avez plusieurs erreurs là-dedans ... et ce code ne semble même pas fonctionner après avoir corrigé les erreurs – Fragsworth

+0

+1, Merci de signaler le 'editoptions.dataInit'; c'était la pièce manquante pour faire fonctionner mon montage en ligne. –

+0

Brillant. Travaille pour moi! – AnonyMouse

1

Utilisez ce code pour ajouter datepicker pour créer/dialogue d'édition:

.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

Cela fonctionne très bien – Cruachan