jQGrid搜索按钮什么都不做

时间:2012-08-30 14:37:48

标签: jquery jqgrid

使用jQGrid v4.2和jQuery 1.8我无法使搜索工作。当我点击搜索按钮时没有任何反应......

我使用v4.2的原因是因为它是jqgrid nuget包的最新版本(令人恼火的是作者没有更新它)。

有没有人有解决方法?我将用最新版本测试它,看看它是否是一个bug。在此示例中,它不适用于数据类型:local但它也不适用于具有json数据的网格。我做错了吗?

<link href="../../Content/themes/base/minified/jquery-ui.min.css" rel="stylesheet" type="text/css" />
<link href="../../Content/jquery.jqGrid/ui.jqgrid.css" rel="stylesheet" type="text/css" />

<script src="../../Scripts/jquery-1.8.0.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.23.js" type="text/javascript"></script>

<script type="text/javascript" src="../../Scripts/i18n/grid.locale-en.js"></script>
<script src="../../Scripts/jquery.jqGrid.min.js" type="text/javascript"></script>


<script type="text/javascript">
    var mydata = [{ id: "1", name: "foo" }, { id: "2", name: "bar"}];

    jQuery(document).ready(function () {
        jQuery("#lgrid").jqGrid({ data: mydata,
            datatype: "local",
            height: 150,
            width: 600,
            rowNum: 10,
            rowList: [10, 20, 30],
            colNames: ['id', 'name'],
            colModel: [{ name: 'id', index: 'id', width: 60, sorttype: "int" },
                                    { name: 'name', index: 'name', width: 60}],
            pager: "#pgrid",
            viewrecords: true,
            caption: "Contacts"
        });

        jQuery("#lgrid").jqGrid('navGrid', '#pgrid', { del: false, add: false, edit: false });
    });     
    </script> 

<table id="lgrid"></table> 
<div id="pgrid"></div> 

编辑:使用jqGrid v4.4.1 ...所以我猜它是一个错误。可惜我再也不能使用nuget包了:(

1 个答案:

答案 0 :(得分:2)

我在同样的问题上苦苦挣扎,在我找到jQgrid搜索无法与jQuery 1.8.0一起使用的原因之后:

在我的jquery.jqGrid.js(v 4.3.2)中,我发现了这个:

if ($("#" + $.jgrid.jqID(IDs.themodal)).html() !== null) {
      showFilter($("#fbox_" + $.jgrid.jqID(+$t.p.id)));
}

在我的文件中,它位于第6863行,但您可能需要搜索它,因为我的文件可能与原始文件相比有点修改。

问题是 $([id])。html()在旧的jQuery版本中求值为null,而在jQuery 1.8.0中,它的计算结果为undefined!由于(undefined!== null)为真且(null!== null)为false,因此代码对不同版本的jQuery执行不同的操作。

我做了什么来修复它,并使其与jQuery 1.8.0一起使用是将比较器从!==更改为!=。这是有效的,因为(null!= null)和(null!= undefined)计算结果为true!

希望这可能有所帮助!