gpt4 book ai didi

jquery - 通过 setGridParam() 设置 jqGrid 编辑选项

转载 作者:行者123 更新时间:2023-12-01 00:25:28 26 4
gpt4 key购买 nike

网格初始化后,我需要为 jqGrid 的编辑事件设置一些事件处理程序。也就是说,我需要处理 beforeShowForm 编辑事件。我已经使用 setGridParam 尝试过,但它似乎没有做任何事情。

$('#mygrid').jqGrid('setGridParam', {
edit: {
beforeShowForm: function(formid) {
// handle event
}
}
});

jqGrid的documentation关于如何设置这些选项的信息较少。事后我应该如何设置这些?我知道您可以通过 jqgrid() 的第二个参数来设置它。我只需要在创建后执行此操作。

最佳答案

你不能那么容易地改变编辑事件的参数,因为参数保存在navGrid函数的内部变量中。因此,您应该取消单击事件与“编辑”按钮的绑定(bind),并绑定(bind)一个新的事件,该事件调用 editGridRow具有您需要的所有新参数的方法。新参数可以包括事件处理程序,如 beforeShowForm .

对应的代码大概如下:

var grid=$("#list");      // your jqGrid (the <table> element)
var grid_id = grid[0].id; // id of the <table> element like "list"
$("#edit_"+grid_id).unbind('click'); // unbind original 'click' handle
$("#edit_"+grid_id).click(function() {
if (!$(this).hasClass('ui-state-disabled')) {
var sr = grid[0].p.selrow; // get id of selected row
if (sr) {
grid.jqGrid("editGridRow",sr,
{ // here you should place all Edit parameters
beforeShowForm: function(formid) {
alert("In beforeShowForm()");
}
});
} else {
// display error message
$.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+grid_id,jqm:true});
$("#jqg_alrt").focus();
}
}
return false;
});

更新:如果您调用某处 editGridRow直接方法,不能更改您可以编写的代码

var grid=$("#list");      // your jqGrid (the <table> element)
var orgEditGridRow = grid.jqGrid.editGridRow; // save original function
$.jgrid.extend ({editGridRow : function(rowid, p){
$.extend(p,
{ // modify some parameters of editGridRow
beforeShowForm: function(formid) {
alert("In new beforeShowForm()");
}
});
orgEditGridRow.call (this,rowid, p);
}});

关于jquery - 通过 setGridParam() 设置 jqGrid 编辑选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4996538/

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