我在 MVC 项目上使用 JQGrid 插件。我试图避免使用“ session ”。我已经能够使用 JQGrid 中的序列化数据方法将额外的 postdata 传递到我的编辑和删除函数中。
例如
serializeEditData: function (postdata)
{
var rowdata = jQuery('#gridId').getRowData(postdata.id);
return {id: postdata.id, oper: postdata.oper, SomeExtraData: $('#extradata').val()};
}
但是,似乎没有 serializeAddData 函数。有没有另一种方法可以在发送之前更改添加方法的发布数据?
最佳答案
有一个方法 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*/}
/);
如果您需要将发布的数据所有转换为另一种格式,例如进行 JSON 序列化,通常 serializeEditData
事件非常实用。为了能够传递额外的 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*/}
);
或以这种方式更好(参见 this answer 关于将函数用作 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*/}
);
关于c# - 如何将额外的 postdata 传递到添加记录函数 - JQGrid-MVC。网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5246555/