gpt4 book ai didi

javascript - jqGrid:为什么我为网格编辑定义的事件没有触发?

转载 作者:行者123 更新时间:2023-12-01 02:17:38 25 4
gpt4 key购买 nike

我正在网格上进行内联编辑,但似乎无法触发任何与该编辑相关的事件。

这里我有 afterSubmit: 并且我希望它在用户编辑网格中的数量字段后触发,但它永远不会触发。

$('#tblLines').jqGrid({
url: createUrl('/CRA/GetLines/'),
editurl: '/CRA/EditModifyLine',
emptyrecords: '',
datatype: 'json',
mtype: 'GET',
colNames: ['Group', 'Description', 'Quantity'],
colModel: [
{ name: 'Group', index: 'Group', width: 100, align: 'left' },
{ name: 'Description', index: 'Description', width: 400, align: 'left' },
{ name: 'Quantity', index: 'Quantity', width: 150, align: 'left', editable: true },
pager: jQuery('#pgrLines'),
rowNum: 10,
rowList: [5, 10, 20, 50],
sortname: 'Group',
sortorder: "desc",
viewrecords: true,
caption: 'Core Group Lines',
onSelectRow: function(id) {
$('#tblCoreGroupLines').editRow(id, true);
lastsel = id;
},
afterSubmit: function(response, postdata) {
alert('got here');
},
postData: { craId: $('#CraId').val() }
});

我尝试将事件定义为 navControl 的一部分,但这也不起作用。内联编辑工作正常——POST 成功并且结果返回,它只是永远不会命中应该与其绑定(bind)的事件。我已经尝试了所有与数量字段的更改相关的事件,但没有一个起作用。

我是否在正确的位置定义了事件?我是否缺少网格上的属性或其他内容?

最佳答案

我认为您需要将属性参数中的 afterSubmit 传递给 editRow

因此,您需要像这样移动 afterSubmit:

 .....
onSelectRow: function(id) {
$('#tblCoreGroupLines').editGridRow(id, { afterSubmit: function(response, postdata) {
alert('got here');
}
});
lastsel = id;
},
...

关于 editGridRow 的文档在这方面提供帮助。

上面的示例将导致一个模式(因为这是唯一使用 afterSubmit 的地方)。如果您想在使用内联编辑成功更新后执行某些操作,您应该能够在 onSelectRow 内部执行以下操作

 $('#tblCoreGroupLines').editGridRow(id,true, undefined, function(res) { 
// res is the response object from the $.ajax call
alert('success!!')
} );

这是来自 js/grid.inlineedit.js 的 editRow 的方法签名

    editRow : function(rowid,keys,oneditfunc,succesfunc, url, extraparam, aftesarvefunc,errorfunc, afterrestorefunc) {

关于javascript - jqGrid:为什么我为网格编辑定义的事件没有触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1381675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com