2011-09-29 75 views
2

我的網格數據讀取配置爲使用json格式。 這是配置jqgrid發佈請求數據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", 
    }, 

從客戶的讀請求發送總是以這種格式參數:

_search =假& ND = 1317286048991個&行= 25 &頁= 1 & SIDX = DEVICE_ID & SORD = asc & totalrows = 100 如何將其轉換爲json格式?

我還設置POSTDATA選項

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

它工作,但obiuovsly不能改變

我有這個問題,尋呼機。對於變更後的測試頁號我調用這個函數

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( 'setGridParam', 'POSTDATA',jdata)。 };

頁改變我的選擇,但如果我理解正確你的問題,你應該在使用serializeGridData有關下列形式POSTDATA不改變 感謝您的幫助

回答

4

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

如果您需要發送其他一些數據到服務器,你可以使用另外

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

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

取決於你需要(字符串或整數)dev_post_devndxdev_post_reccount屬性的類型。

+0

謝謝!有人應該將此標記爲答案。它按預期工作。 –

+0

@AmithGeorge:不客氣! – Oleg

-1

的jqGrid的單證...可能是最糟糕我見過

嘗試用這個例子:

$("#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'); 
}