Joe*_*Joe 4 .net c# jqgrid asp.net-mvc-2
我在MVC项目上使用JQGrid插件.我试图避免使用'Session'.我已经能够使用JQGrid中的serializedata方法将额外的postdata传递到我的编辑和删除函数中.
例如
serializeEditData: function (postdata)
{
var rowdata = jQuery('#gridId').getRowData(postdata.id);
return {id: postdata.id, oper: postdata.oper, SomeExtraData: $('#extradata').val()};
}
Run Code Online (Sandbox Code Playgroud)
但是,似乎没有serializeAddData函数.是否有另一种方法可以在发送之前更改add方法的发布数据?
有一个方法 editGridRow它们分别实现了表单编辑这两个 "编辑"和"添加"对话框.因此,在两种情况下都可以使用相同的事件han`ler serializeEditData.例如,
$("#list").jqGrid('navGrid','#pager',
{/*navGrid options*/},
{/*edit options*/
serializeEditData: function (postdata) {
// your implementation of serializeEditData for edit
}
},
{/*add options*/
serializeEditData: function (postdata) {
// your implementation of serializeEditData for add
}
},
{/*del options*/},
{/*search options*/}
Run Code Online (Sandbox Code Playgroud)
/);
通常,serializeEditData如果您需要以其他格式转换所有发布的数据,事件非常实用,例如进行JSON序列化.为了能够传递额外的postdata参数,你可以使用editData参数,它具有与jqGrid参数相同的含义postData:
$("#list").jqGrid('navGrid','#pager',
{/*navGrid options*/},
{/*edit options*/
editData: {SomeExtraData: $('#extradata').val()}
},
{/*add options*/
editData: {SomeExtraData: $('#extradata').val()}
},
{/*del options*/},
{/*search options*/}
);
Run Code Online (Sandbox Code Playgroud)
或以这种方式更好(请参阅此答案关于函数的用法作为属性postData):
$("#list").jqGrid('navGrid','#pager',
{/*navGrid options*/},
{/*edit options*/
editData: {SomeExtraData: function() {return $('#extradata').val();}}
},
{/*add options*/
editData: {SomeExtraData: function() {return $('#extradata').val();}}
},
{/*del options*/},
{/*search options*/}
);
Run Code Online (Sandbox Code Playgroud)