当jqgrid里面的模态对话框时,自由jqgrid 4.8叠加问题

时间:2015-03-25 17:24:23

标签: jqgrid overlay z-index free-jqgrid

我使用免费的jqgrid 4.8。 我在模态对话框中使用jqgrid。 当我尝试使用寻呼机的删除按钮时,所有对话框都被禁用。

http://jsfiddle.net/9ezy09ep

$(function ()
{
    $("#Ecran").dialog(
    {
        dialogClass: 'Ecran',
        autoOpen: false,
        width: 500,
        height:400,
        modal: true,
        open: function (event, ui) {
            $("#jqGrid").jqGrid({
                url: 'http://trirand.com/blog/phpjqgrid/examples/jsonp/getjsonp.php?callback=?&qwery=longorders',
                mtype: "GET",
                datatype: "jsonp",
                colModel: [
                    { label: 'OrderID', name: 'OrderID', key: true, width: 75 },
                    { label: 'Customer ID', name: 'CustomerID', width: 150 },
                    { label: 'Order Date', name: 'OrderDate', width: 150 },
                    { label: 'Freight', name: 'Freight', width: 150 },
                    { label:'Ship Name', name: 'ShipName', width: 150 }
                ],
                viewrecords: true,
                width: 480,
                height: 250,
                rowNum: 20,
                pager: "#jqGridPager"
            });

            jQuery("#jqGrid").jqGrid('navGrid', '#jqGridPager', {
                del: true, add: false, edit: false,
                beforeRefresh: function () {},
                afterRefresh: function () {}},                  
                {}, // default settings for edit
                {}, // default settings for add
                {}, // delete
                {}, // search options
                {}
            );

        },
        close:function () {}
    });
});

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:2)

我认为通过在jQuery UI对话框中使用jqModal来解决问题的根源。 jqGrid是jQuery插件。因此它不会使用来自jQuery UI的仅CSS 。它不使用jQuery UI对话框。

我建议你加入

$.fn.jqm = false;

关闭jqModal模块并使用jQuery UI功能。见http://jsfiddle.net/9ezy09ep/7/。我将在后面更详细地研究这个问题,以改进所描述测试用例的免费jqGrid代码。

更新:我在免费的jqGrid中做了一些额外的修改,这允许替代解决方案。现在可以使用像

这样的代码
$.jgrid.jqModal = $.jgrid.jqModal || {};
$.extend(true, $.jgrid.jqModal, {toTop: true});

更改jqModal模块的行为。下一个演示显示结果http://jsfiddle.net/OlegKi/9ezy09ep/9/

答案 1 :(得分:0)

jqGrid在创建模态对话框时应该使用 ui-dialog 类。

您必须修改 jquery.jqGrid.min.js 文件。

根据5.0.0版

只需将 ui-dialog 类添加到以下行,

modal: { modal: "ui-widget ui-widget-content ui-corner-all ",          

e.g。

modal: { modal: "ui-widget ui-widget-content ui-corner-all ui-dialog",

根据免费的jqGrid版本

ui-dialog 类添加到以下行

 dialog: {
                ...
                window: "ui-widget ui-widget-content ui-corner-all ui-front",
                ...

e.g。

 dialog: {
                ...
                window: "ui-widget ui-widget-content ui-corner-all ui-front ui-dialog",
                ...