我正在尝试在jqGrid中编辑,插入和删除内联,并成功执行插入和编辑但不是删除。我读到了有关使用'clientArray'的信息,它就像我提到的编辑一样,但不是删除。当调用删除功能时,弹出删除消息,但是当点击删除时,我收到消息:“没有设置网址”。
我做错了什么?这些是单击相应按钮时调用的函数。
function _deleteLine(rowId) {
var id = rowId;
if (_.isNumber(id) === false) {
id = rowId.id;
}
self.$grid.delGridRow(id, false, 'clientArray');
}
function _editLine(rowId) {
var id = rowId;
if (_.isNumber(id) === false) {
id = rowId.id;
}
self.$grid.jqGrid("editRow", id, true);
_toggleActionButtons(true, id);
}
function _saveLine(rowId) {
var defer = $.Deferred();
var id = rowId;
if (_.isNumber(id) === false) {
id = rowId.id;
}
self.$grid.saveRow(id, false, 'clientArray');
toggleActionButtons(false, id);
return defer.promise();
}
更新
将删除功能更改为以下后我能够删除该项目,但是,模态不会关闭。我看着这个,然后跟着它,但无法解决:
function _deleteLine(rowId){
options.processing = true;
var grid_id = $.jgrid.jqID(this.p.id);
self.$grid.jqGrid("delRowData", rowid);
$.jgrid.hideModal("#delhd" + grid_id, {
gb: "#gbox_" + grid_id,
jqm: true
});
}
答案 0 :(得分:1)
jqGrid 4.6已经3岁了。这是最后一个版本,它不支持delGridRow
本地数据。很多年前我发布了the workaround,它描述了如何使用表单编辑方法删除本地网格的行。后来我发布了another answer,其中显示了如何使用其他表单编辑方法来编辑本地行。
一般情况下,我建议更新到free jqGrid的最新版本(4.13.6),jqGrid的分支,我从2014年底开始开发。免费的jqGrid与jqGrid 4.6兼容,但很多新功能允许简化jqGrid的使用。例如,您可以使用formatter: "actions"
,inlineNav
并直接致电editRow
。编辑开始/结束后,所有按钮(内联操作按钮和导航菜单按钮)将自动隐藏/可见或启用/禁用。无需额外调用以显示/隐藏按钮。例如,尝试the demo。