如何使用saveRow的jqgrid extraParam参数
其中一个单元格中的edittype是select,其键值对如下所示如何使用saveRow的jqgrid extraParam参数,jqgrid,Jqgrid,其中一个单元格中的edittype是select,其键值对如下所示 colModel: [ {name: 'Code', index: 'Code', width: '16%', editable: true, sortable: true }, { name: 'ABC', index: 'ABC', width: '16%', editable: true, edittype: "select", editoptions: { value:
colModel: [
{name: 'Code', index: 'Code', width: '16%', editable: true, sortable: true },
{ name: 'ABC', index: 'ABC', width: '16%', editable: true, edittype: "select", editoptions: { value: "FE:FedEx;TN:TNT"} },
{ name: 'Emailid', index: 'Emailid', width: '16%', editable: true, sortable: true },
],
现在,在添加新行时,如果我选择FedEx for ABC列,它将发送FE to EditURL链接,而不是FedEx,因此我希望使用extraParam to EditURL发送FedEx
所以请任何人告诉我如何实施它
为此,我的代码如下
更新代码
Oleg的更新代码
代码可能与以下内容有关 var grid=jQuerylist5, 编辑机器人, myEditParam={ 凯斯:没错, oneditfunc:函数id{ editingRowId=id; }, afterrestorefunc:函数id{ editingRowId=未定义; }, 外参数:{ //我们从列中获取所选选项的文本 //“Emailid”,并将数据作为附加信息包括在内 //参数“EmailidText” EmailidText:函数{ return$+editingRowId+\u Emailid>选项:selected.text; } } }; grid.jqGrid{ url:“/home1/GetUserData”, 数据类型:json, ... onsetrow:函数id{ var$this=$this,gridIdSelector=+$.jgrid.jqIDthis.id; $this.jqGrid'setGridParam'{ editurl:id==新行? /home1/InsertUserData: /home1/EditUserData }; 如果编辑rowId!==id{ $gridIdSelector+\u iledit.click; } } }; $grid.jqGrid'navGrid'、'pager', {编辑:false,添加:false,搜索:false,刷新:false}, {},{},{url:'/home1/DeleteUserData'}; //InlineAV具有restoreAfterSelect:true per default,因此我们不需要调用 //显式恢复 $grid.jqGrid'inlineNav','pager', {edit:true,add:true,editParams:myEditParam, addParams:{addRowParams:myEditParam}};
为了能够帮助您,了解如何使用内联编辑是非常重要的?。您是使用格式化程序:“操作”还是使用InlineAV或直接调用存储行。在所有情况下,您都会有一个小小的另一个实现。Oleg我已经更新了我的代码,不管怎样,我正在使用内联编辑。Oleg:很好的解决方案,这正是我想要的。非常感谢您为我节省时间。Oleg:在这里,我们将函数绑定到EmailidText,我们不能将函数绑定到myEditParam对象的extraparam,这样它将动态返回键、值pairof对象的列表。@Meraj:对不起,我不明白您的意思。你能把你的问题重新表述一下,更清楚地描述你想要什么吗?奥列格:很抱歉,这个模棱两可的问题,我已经更新了你提供给我的代码,不管是否可能。我已经试过了,但没有成功,所以是否有其他方法。@Meraj:我不确定我是否理解您希望通过extraparam返回的键、值对的来源。如果您有一些带有命名控件的表单,则可以使用$.serializeArray:extraparam:{formData:function{return$myForm.serializeArray;}}。显示如何在过帐之前重新格式化从序列化数组返回的数据。您可以使用与我为postData显示的相同的方式重新格式化extraparam。我希望这是你问的。
var grid = jQuery("#list5").jqGrid({
url: '/home1/GetUserData',
datatype: "json",
mtype: "POST",
colNames: ['Code', 'LoginID', 'Emailid'],
colModel: [
{name: 'Code', index: 'Code', width: '16%', editable: true, sortable: true },
{ name: 'LoginID', index: 'LoginID', width: '16%', editable: true, sortable: true },
{ name: 'Emailid', index: 'Emailid', width: '16%', editable: true, edittype: "select", editoptions: { value: "FE:FedEx;TN:TNT"} },
],
rowNum: 10,
autowidth: true,
height: '100%',
rowList: 10,
pager: $("#pager2"),
editurl: "/home1/EditUserData",
onSelectRow: function (id) {
if (id && id !== lastsel2) {
if (id == "new_row") {
grid.setGridParam({ editurl: "/home1/InsertUserData" });
}
else {
grid.setGridParam({ editurl: "/home1/EditUserData" });
}
jQuery('#list5').restoreRow(lastsel2);
jQuery('#list5').jqGrid('editRow', id, true, pickdates);
$("#list5_ilsave").addClass("ui-state-disabled");
$("#list5_ilcancel").addClass("ui-state-disabled");
$("#list5_iladd").removeClass("ui-state-disabled");
$("#list5_iledit").removeClass("ui-state-disabled");
lastsel2 = id;
}
},
caption: "Simple data manipulation"
});
jQuery("#list5").jqGrid('navGrid', '#pager2', { edit: false, add: false, del: true, search: false, refresh: false }, {}, {}, { url: '/home1/DeleteUserData' });
jQuery('#list5').jqGrid('inlineNav', '#pager2', { edit: true, add: true, editParams: {extraparam: XYZ()}});
});
function XYZ()
{
// from here i want to return the text of combo of selected row.
}
var grid = jQuery("#list5"),
editingRowId,
myEditParam = {
keys: true,
oneditfunc: function (id) {
editingRowId = id;
},
afterrestorefunc: function (id) {
editingRowId = undefined;
},
extraparam:
// we get the text of selected option from the column
// 'Emailid' and include the data as additional
// parameter 'EmailidText'
// EmailidText: function () {
// return $("#" + editingRowId + "_Emailid>option:selected").text();
//}
// **my changes here bind ABC Function which return key , value pair of object** IS THIS POSSIBLE
function () {
ABC();
}
};
grid.jqGrid({
url: '/home1/GetUserData',
datatype: "json",
...
onSelectRow: function (id) {
var $this = $(this), gridIdSelector = '#' + $.jgrid.jqID(this.id);
$this.jqGrid('setGridParam', {
editurl: (id === "new_row" ?
"/home1/InsertUserData" :
"/home1/EditUserData")
});
if (editingRowId !== id) {
$(gridIdSelector + "_iledit").click();
}
}
});
$grid.jqGrid('navGrid', '#pager',
{ edit: false, add: false, search: false, refresh: false},
{}, {}, { url: '/home1/DeleteUserData' });
// inlineNav has restoreAfterSelect: true per default so we don't need to call
// restoreRow explicitly
$grid.jqGrid('inlineNav', '#pager',
{ edit: true, add: true, editParams: myEditParam,
addParams: {addRowParams: myEditParam } });