对于那些使用jqGrid进行表单编辑的人来说,这里非常简单,让表单编辑对话框呈现模式的jqGrid覆盖是使用'.jqmOverlay‘,而不是主题为'.ui-widget- overlay’的jquery。
我曾尝试在afterShowForm事件中删除jqmOverlay并用ui-widget-overlay替换它,但正确的覆盖(ui-widget- overlay )显示了一秒钟,然后又恢复为不正确的(jqmOverlay)。
除非我弄错了,否则似乎没有任何后来发生的事件可以让我尝试去触发。
任何帮助都将不胜感激。
afterShowForm: function (form)
{
var overlayDiv = $('.jqmOverlay');
overlayDiv.removeAttr('class');
overlayDiv.attr('class', 'ui-widget-overlay');
//$('.jqmOverlay').attr('class', 'ui-widget-overlay');
}
发布于 2011-06-23 14:01:00
The form editing支持两种不同的覆盖:标准'ui-widget-overlay'
和来自jqModal.js
的jqModal。
如果你不想使用jqModal
插件,你可以在添加或编辑设置的选项列表中包含jqModal:false属性。在这种情况下,覆盖将如下:
<div style="display: block;" id="lui_list" class="ui-widget-overlay jqgrid-overlay"/>
(在这里,war使用了网格,其中<table>
元素有id="list")
如果要移除覆盖,您可以将其隐藏
afterShowForm:function(){
$("#lui_"+grid[0].id).hide(); // hide #lui_list overlay
}
其中,grid
的定义类似于var grid=$("list");
widget更新了:如果你愿意,你可以像我之前描述的那样隐藏网格的覆盖,并创建自己的具有'ui-widget- overlay‘类的覆盖。我创建了the demo,它在我的测试中工作,没有你所描述的问题。我使用了“编辑”对话框的以下选项:
recreateForm:true,
jqModal:false,
reloadAfterSubmit:false,
savekey: [true,13],
closeOnEscape:true,
closeAfterEdit:true,
afterShowForm:function(){
$("#lui_"+grid[0].id).hide();
$('body').prepend('<div class="ui-widget-overlay" id="My_list" style="left: 0px; top: 0px; width: 100%; height: 100%; position: fixed; z-index: 949; opacity: 0.3;"/>');
},
onClose:function(){
$('#My_list').remove();
}
也许您应该更改opacity
或z-index
的值,以便在应用程序中更好地使用它。在设置z-index
时要小心。如果您需要增加它,您可能需要使用编辑属性的zIndex
的附加值。
https://stackoverflow.com/questions/6454839
复制相似问题