2011-09-29 4 views
2

Mes données de grille lues sont configurées pour utiliser le format json. Voici la configurationjqgrid post demande de données json

url:"devitem.json", 
    mtype: "POST", 
    datatype: "json", 

    ajaxGridOptions: { 
     type : 'post', 
     async : false, 
     error : function() { alert('Something bad happened. Stopping');}, 
    }, 

    jsonReader : { 
     root  : "rows", 
     page  : "page", 
     total  : "total", 
     records  : "records", 
     repeatitems : true, 
     cell  : "cell", 
     id   : "0", 
     userdata : "userdata", 
    }, 

La requête de lecture du client envoient des paramètres toujours dans ce format:

_search = false & nd = 1317286048991 & rangs = 25 & page = 1 & Sidx = device_id & sord = asc & totalrows = 100 Comment puis-je le convertir en format json?

J'ai aussi définir l'option postData

postData : JSON.stringify({"dev_post_reqtype":"read","dev_post_devndx":"1","dev_post_reccount":"55"}), 

Il fonctionne, mais obiuovsly ne peut pas être changé

J'ai ce problème avec téléavertisseur. Pour les tests après le changement du numéro de page que j'appelle cette fonction

function DEVpager_event(pgevent) { 

var page = jQuery("#DEVtbl").getGridParam('page'); 
    alert (pgevent+page) ; 

// changed devndx for test only 
var jdata = JSON.stringify({"dev_post_reqtype":"read","dev_post_devndx":"25","dev_post_reccount":"55"}) ; 

jQuery ("# DEVtbl") jqGrid ('de setGridParam', 'postData', jdata). };

page est changé avec ma sélection mais postData ne change pas grâce à l'aide

Répondre

4

Si je comprends corriger votre problème, vous devez utiliser serializeGridData à propos de la forme suivante:

serializeGridData: function(postData) { 
    return JSON.stringify(postData); 
} 

Si vous avez besoin envoyer des données supplémentaires sur le serveur, vous pouvez utiliser plus

postData: { 
    dev_post_reqtype: "read", 
    dev_post_devndx: "1", 
    dev_post_reccount: "55" 
} 

ou

postData: { 
    dev_post_reqtype: "read", 
    dev_post_devndx: 1, 
    dev_post_reccount: 55 
} 

dépendent du type de dev_post_devndx et dev_post_reccount propriétés dont vous avez besoin (chaîne ou entier).

+0

Merci! Quelqu'un devrait marquer cela comme la réponse. Cela fonctionne comme prévu. –

+0

@AmithGeorge: Vous êtes les bienvenus! – Oleg

-1

Les ... jqGrid de documentation probablement le pire que j'ai jamais vu

Essayez avec cet exemple:

$("#wlistt").jqGrid('navGrid','#pagerwlist', 
     { add: true, edit: true, del: true }, 
     {// settings for edit 
         afterShowForm:afterShowEdit, 
         afterSubmit:processAddEdit, 
         beforeSubmit:validateData, 
         closeAfterAdd: true, 
         closeAfterEdit: true 
       } 
       ,{// settings for add 
         afterShowForm:afterShowAdd, 
         afterSubmit:processAddEdit, 
         beforeSubmit:validateData, 
         closeAfterAdd: true, 
         closeAfterEdit: true 
       } 
       ,{} // settings for delete 
     ); 

    } 
} 
function afterShowEdit(formId) { 
      alert('show_edit');   
} 
function afterShowAdd(formId) { 

     alert('show_add'); 
} 
function processAddEdit(formId) { 

     alert('proc_add'); 
} 
function validateData(formId) { 

     alert('val_dat'); 
} 
Questions connexes