jquery - jqGrid: Additional Edit Parameters not being posted to server -
i'm using lib.web.mvc helper initial jqgrid js generated object. after call @grid.getjavascript, issue separate call modify editdata collection specified below. here effective js i'm using. values of areaid , areaitemid don't ever submitted controller action.
$(document).ready(function () { $('#getareaitemdetails').jqgrid({ colnames: ['code', 'name', 'description', 'has addl comments'], colmodel: [ { editable: true, editoptions: { "maxlength": 16 }, editrules: { required: true }, name: 'areaitemdetailcode' }, { editable: true, editoptions: { "maxlength": 32 }, editrules: { required: true }, name: 'areaitemdetailname' }, { editable: true, editoptions: { "maxlength": 128 }, editrules: { required: true }, name: 'areaitemdetaildescription' }, { editable: true, edittype: 'checkbox', editrules: { required: true }, name: 'hasadditionalcomments' }], caption: 'area item details', url: '/admin/getareaitemdetails', datatype: 'json', footerrow: true, jsonreader: { repeatitems: false, id: 'id', subgrid: { repeatitems: false} }, mtype: 'post', pager: '#getareaitemdetailspager', prmnames: { npage: 'npage' }, rowlist: [10, 20, 30, 40, 50], rownum: 10, sortname: 'areaitemdetailid', viewrecords: true, height: '100%' }).jqgrid('navgrid', '#getareaitemdetailspager', { search: false }, { height: 175, url: '/admin/updateareaitemdetail', width: 400, recreateform: true, closeafteredit: true }, { height: 175, url: '/admin/insertareaitemdetail', width: 400, recreateform: true, closeafteradd: true }); $("#getareaitemdetails").jqgrid('navgrid', '#getareaitemdetailspager', {/*navgrid options*/}, { editdata: { areaitemid: function () { return $('#ddlareaitems').val(); }, areaid: function () { return $('#ddlareas').val(); } } }, { editdata: { areaitemid: function () { return $('#ddlareaitems').val(); }, areaid: function () { return $('#ddlareas').val(); } } }); });
i suppose reason of problem two calls of navgrid instead of one. navgrid method creates navigator bar. can create one navigator bar in grid.
how can see the line of code of navgrid function test existence of nav property crated method (see the line assign this.nav = true;). code
if(this.nav) {return;} will used to skip second execution of method.
so solve problem should combine 2 calls in one:
... }).jqgrid('navgrid', '#getareaitemdetailspager', { search: false }, { height: 175, url: '/admin/updateareaitemdetail', width: 400, recreateform: true, closeafteredit: true, editdata: { areaitemid: function () { return $('#ddlareaitems').val(); }, areaid: function () { return $('#ddlareas').val(); } } }, { height: 175, url: '/admin/insertareaitemdetail', width: 400, recreateform: true, closeafteradd: true, editdata: { areaitemid: function () { return $('#ddlareaitems').val(); }, areaid: function () { return $('#ddlareas').val(); } } }); you can reduce code if set common add , edit settings default settings (on page) form editing
$.extend($.jgrid.edit, { height: 175, url: '/admin/insertareaitemdetail', width: 400, recreateform: true, closeafteradd: true, closeafteredit: true, editdata: { areaitemid: function () { return $('#ddlareaitems').val(); }, areaid: function () { return $('#ddlareas').val(); } } }); before calling of navgrid. in case call can reduced to
... }).jqgrid('navgrid', '#getareaitemdetailspager', { search: false });
Comments
Post a Comment