jqGrid - Boutons Ajouter / Modifier par défaut - Réponse du serveur de traitement

StackOverflow https://stackoverflow.com/questions/1234461

  •  22-07-2019
  •  | 
  •  

Question

Je travaille sur ma première implémentation d'un jqGrid . J'utilise les boutons d'ajout / modification standard qui apparaissent dans navGrid, mais je ne parviens pas à identifier la procédure de traitement de la réponse du serveur lorsque je clique sur Soumettre dans les formulaires de modification / ajout.

.navGrid("#product-codes-footer",{edit:true,add:true,del:false},
{afterShowForm:afterShowEdit}, {afterShowForm:afterShowAdd} );

Existe-t-il un paramètre standard de rappel ou d'événement qui me manque quelque part à ce sujet? Existe-t-il un moyen de définir le mode d’appel de saveRow ou existe-t-il une méthode de rappel succès / erreur par défaut que je peux implémenter?

N'importe quelle direction serait très appréciée !!!

Était-ce utile?

La solution

Il semble y avoir quelques paramètres d'événement que je n'ai pas réussi à lire et à comprendre complètement ...

API - > http://www.trirand.com/jqgridwiki/doku.php ? id = wiki: form_editing # editgridrow

L’utilisation des paramètres d’événement pour afterSubmit et afterComplete me permet de traiter la réponse du serveur et de mettre à jour le formulaire.

- Dan

EDIT Voici un exemple du code utilisé ...

.navGrid(
        "#product-codes-footer",
        {edit:true,add:true,del:false}, 
        {
            afterShowForm:afterShowEdit, 
            afterSubmit:processAddEdit,
            beforeSubmit:validateData,
            closeAfterAdd: true,
            closeAfterEdit: true
        }, 
        {
            afterShowForm:afterShowAdd, 
            afterSubmit:processAddEdit,
            beforeSubmit:validateData,
            closeAfterAdd: true,
            closeAfterEdit: true
        } 
);
function afterShowEdit(formId) {

            //do stuff after the form is rendered
        }
        function afterShowAdd(formId) {

            //do stuff after the form is rendered
        }
        function processAddEdit(response, postdata) {
            var success = true;
            var message = ""
            var json = eval('(' + response.responseText + ')');
            if(json.errors) {
                success = false;
                for(i=0; i < json.errors.length; i++) {
                    message += json.errors[i] + '<br/>';
                }
            }
            var new_id = "1";
            return [success,message,new_id];
        }

Autres conseils

Il y a plusieurs façons dont j'ai pu le faire:

 jQuery("#search_results").jqGrid({
        url: host,
        datatype: "xml", 
        mtype: "GET", // Handy to see the params passed.
        height: 200,
        width: 500,
...
...
etc
        gridComplete: function() {
          var ids = jQuery("#search_results").getDataIDs();
          if (ids.length Empty Result

'); } else { $('#jqgrid_error').hide(); } }, loadError: function(xhr,st,err) { jQuery("#jqgrid_error").html("Type: "+ st +"; Response: "+ xhr.status + " "+xhr.statusText+'

'); } }).navGrid('#search_results_pager', {edit:true,add:false,del:false,search:true}, { afterComplete:processed, // processed is a function you define closeAfterEdit: true, reloadAfterSubmit:true } );

Extrait de la documentation:

afterComplete Cet & nbsp; événement & nbsp; se déclenche immédiatement après & nbsp; toutes les & nbsp; actions & nbsp; et & nbsp; événements & nbsp; sont & nbsp; terminés & nbsp; et & nbsp; la & nbsp; rangée & nbsp; est & nbsp; insérée & nbsp; ou & nbsp; mise à jour & nbsp; dans & nbsp; la & nbsp; grille & nbsp ;. afterComplete (serverResponse, & nbsp; postdata, & nbsp; formidable) & nbsp; où

      
  • réponse & nbsp; les & nbsp; données & nbsp; renvoyées & nbsp; par & nbsp; par le & nbsp; serveur & nbsp; (si & nbsp; n'importe lequel)
  •    
  • postdata & nbsp; un tableau, & nbsp; les & nbsp; données & nbsp; envoyées & nbsp; à & nbsp; au & nbsp; serveurs & nbsp; envoyés & nbsp; à & nbsp;
  •   
  • formidable est & nbsp; est le & nbsp; id & nbsp; du & nbsp; formulaire & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

gridComplete Ce & nbsp; déclenche & nbsp; après & nbsp; toutes & nbsp; les & nbsp; données & nbsp; est & nbsp; chargé & nbsp; chargé & nbsp; dans & nbsp; la & nbsp; grille & nbsp; toutes & nbsp; & & nbsp; les processus & nbsp; sont & nbsp; complets.

loadError xhr, st, err Une & nbsp; fonction & nbsp; être & nbsp; appelée & nbsp; appelée & nbsp; si & nbsp; la & nbsp; demande & nbsp; échoue. & nbsp; La & nbsp; requête & nbsp; échoue. & nbsp; La & nbsp; demande & nbsp; échoue. & nbsp; Trois & nbsp; arguments: & nbsp; XMLHttpRequest & nbsp; objet & nbsp; (XHR), & nbsp; une & nbsp; chaîne & nbsp; décrivant & nbsp; le & nbsp; type & nbsp; erreur & nbsp; (st) & nbsp; que & nbsp; s'est produit & nbsp; et & nbsp; une & nbsp; facultative & nbsp; une & nbsp; facultative & nbsp; exception & nbsp; objet & nbsp; (err), & nbsp; si & nbsp; un & nbsp; un & nbsp; une.

Il existe des documents PDF pratiques / utiles (un peu datés): http://www.scribd.com/doc/17094846/jqGrid .

Vous pouvez essayer ceci:

navGrid('#gridpager',{view:true},{},{closeOnEscape:true},{afterSubmit:processAddEdit}); 
        $.jgrid.search={
        odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','like','does not contain'],        
          sopt:['eq','ne','cn','bw','ew']
        }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top