#json #post #jqgrid
#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= falseamp;nd = 1317286048991amp;rows= 25amp;page = 1amp;sidx= device_idamp;sord= ascamp;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);
} ;
страница изменяется с моим выбором, но postData не меняются спасибо за помощь
Ответ №1:
Если я правильно понимаю вашу проблему, вам следует использовать serializeGridData примерно в следующей форме:
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_devndx
и dev_post_reccount
свойств, которые вам нужны (строка или целое число).
Комментарии:
1. Спасибо! Кто-то должен пометить это как ответ. Это работает, как и ожидалось.
Ответ №2:
Документация 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');
}