使用 inlineNav 刷新的 jqGrid 不适用于 extraparams
jqGrid using inlineNav refresh not working with extraparams
按照之前 post 中的解决方案后,我发现如果存在 extraparams,使用 successfunc 的 inlineNav 在 add/edit 后 jqGrid 刷新不起作用。
这是我的代码:
var editOptions = {
keys: true,
successfunc: function () {
alert('success');
var $self = $(this);
setTimeout(function () {
alert('refreshing');
$self.setGridParam({ datatype: 'json' });
$self.trigger("reloadGrid");
}, 500);
}
.jqGrid('inlineNav', {
addParams: {
useDefValues: true,
addRowParams:
{
editOptions,
extraparam: {
userId: function () {
return currentUserId;
},
companyId: function () {
return currentCompanyId;
}
}
}
},
editParams: {
editOptions
}
我尝试了 editOptions 放置位置的不同组合,但没有成功。
您将 extraparam
放错了地方。应该是editOptions
的属性.
更新:
var reloadGridFunc = function () {
alert('success');
var $self = $(this);
setTimeout(function () {
alert('refreshing');
$self.setGridParam({ datatype: 'json' });
$self.trigger("reloadGrid");
}, 500);
};
.jqGrid('inlineNav', {
addParams: {
useDefValues: true,
addRowParams: {
// here are editOption used for Add
keys: true,
successfunc: reloadGridFunc,
extraparam: {
userId: function () {
return currentUserId;
},
companyId: function () {
return currentCompanyId;
}
}
}
},
editParams: {
// here are editOption used for Edit
keys: true,
successfunc: reloadGridFunc
}
});
好的 - 我发现我做错了什么。它实际上在我上面的代码的两个部分中。首先,我改变了:
function successFunc() {
var $self = $(this);
setTimeout(function () {
$self.setGridParam({ datatype: 'json' });
$self.trigger("reloadGrid");
}, 500);}
我摆脱了 var editOptions,其中包含 keys 和 successfunc 参数。这显然与 inlineNav 方法的 addParams 部分中的 successfunc 调用冲突。所以这是参数部分现在的样子:
.jqGrid('inlineNav', {
addParams: {
addRowParams:
{
keys: true,
extraparam:
{ userId: currentUserId,
companyId: currentCompanyId
},
successfunc: successFunc
}
},
editParams: {
successfunc: successFunc
}
});
所以现在当我添加或编辑内联记录时,刷新会在调用 successfunc 时发生。希望这对将来的其他人有帮助。感谢@Oleg 对此的初步帮助。
按照之前 post 中的解决方案后,我发现如果存在 extraparams,使用 successfunc 的 inlineNav 在 add/edit 后 jqGrid 刷新不起作用。
这是我的代码:
var editOptions = {
keys: true,
successfunc: function () {
alert('success');
var $self = $(this);
setTimeout(function () {
alert('refreshing');
$self.setGridParam({ datatype: 'json' });
$self.trigger("reloadGrid");
}, 500);
}
.jqGrid('inlineNav', {
addParams: {
useDefValues: true,
addRowParams:
{
editOptions,
extraparam: {
userId: function () {
return currentUserId;
},
companyId: function () {
return currentCompanyId;
}
}
}
},
editParams: {
editOptions
}
我尝试了 editOptions 放置位置的不同组合,但没有成功。
您将 extraparam
放错了地方。应该是editOptions
的属性.
更新:
var reloadGridFunc = function () {
alert('success');
var $self = $(this);
setTimeout(function () {
alert('refreshing');
$self.setGridParam({ datatype: 'json' });
$self.trigger("reloadGrid");
}, 500);
};
.jqGrid('inlineNav', {
addParams: {
useDefValues: true,
addRowParams: {
// here are editOption used for Add
keys: true,
successfunc: reloadGridFunc,
extraparam: {
userId: function () {
return currentUserId;
},
companyId: function () {
return currentCompanyId;
}
}
}
},
editParams: {
// here are editOption used for Edit
keys: true,
successfunc: reloadGridFunc
}
});
好的 - 我发现我做错了什么。它实际上在我上面的代码的两个部分中。首先,我改变了:
function successFunc() {
var $self = $(this);
setTimeout(function () {
$self.setGridParam({ datatype: 'json' });
$self.trigger("reloadGrid");
}, 500);}
我摆脱了 var editOptions,其中包含 keys 和 successfunc 参数。这显然与 inlineNav 方法的 addParams 部分中的 successfunc 调用冲突。所以这是参数部分现在的样子:
.jqGrid('inlineNav', {
addParams: {
addRowParams:
{
keys: true,
extraparam:
{ userId: currentUserId,
companyId: currentCompanyId
},
successfunc: successFunc
}
},
editParams: {
successfunc: successFunc
}
});
所以现在当我添加或编辑内联记录时,刷新会在调用 successfunc 时发生。希望这对将来的其他人有帮助。感谢@Oleg 对此的初步帮助。