我正在研究jqgrid。
我有一个要求,在jqgrid的一个列中我有一个按钮,点击该按钮会发生一些更新。
现在我想要的是,当点击该按钮直到更新操作(ajax调用)进行时,我想禁用/冻结整个jqgrid。
我想取消jqgrid,即用户不应该在jqgrid上选择任何内容,包括其他按钮,寻呼机框,寻呼机按钮,排序按钮等......
我已准备好jsfiddle here:http://jsfiddle.net/yrshaikh/9WhdS/如果您在回答此问题时觉得有用,请使用它。
jQuery("#list47").jqGrid({
data: mydata,
datatype: "local",
height: 150,
rowNum: 999999,
scroll: true,
colNames: ['Inv No','Notes'],
colModel: [
{
name: 'id',
index: 'id',
width: 60,
sorttype: "int"},
{
name: 'note',
formatter: function(){
return "<input type='button' value='update something' class='btn'/>";
}}
],
pager: "#plist47",
viewrecords: true,
multiselect: true,
caption: "how to freeze out jqgrid ?",
beforeSelectRow: function(rowid, e)
{
jQuery("#list47").jqGrid('resetSelection');
return(true);
}
});
这是否有内置功能?请帮我解决这个问题。
答案 0 :(得分:1)
我不认为jqGrid中存在本机功能来执行您想要实现的功能。我将继续使用BlockUi插件:http://jquery.malsup.com/block
$(".btn").click(function(){
$("#list47").closest('.ui-jqgrid').block({
message: '<h1>Processing</h1>',
css: { border: '3px solid #a00' }
});
});
然后在你的ajax请求完成时调用这段代码:
$("#list47").closest('.ui-jqgrid').unblock();
答案 1 :(得分:0)
尝试使用$("#lui_" + myGridId).show()
。
网格在内部创建了此叠加层,并将其用作加载程序消息的一部分。您只需显示或隐藏它,它就会为您禁用/启用网格。
看起来不太好,但可以自定义。