1

jQGridv4.2とjQuery1.8を使用すると、検索を機能させることができません。検索ボタンをクリックしても何も起こりません...

私がv4.2を使用している理由は、jqgrid nugetパッケージの最新バージョンであるためです(迷惑なことに、作成者はそれを更新していません)。

誰かが回避策を持っていますか?最新バージョンでテストして、バグかどうかを確認します。この例では、datatype: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> 

編集: jqGridv4.4.1で動作します...だから私はそれがバグだと思います。残念ながら、nugetパッケージを使用できなくなりました:(

4

1 に答える 1

2

私は同じ問題に苦労しました、そして私がjQgrid検索がjQuery1.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と評価されるのに対し、jQuery1.8.0では代わりにundefinedと評価されることです。(undefined!== null)はtrueであり、(null!== null)はfalseであるため、コードはjQueryのバージョンが異なれば異なることを行います。

私がそれを修正し、jQuery 1.8.0で動作させるために行ったことは、コンパレータを!==から!=に変更することでした。(null!= null)と(null!= undefined)の両方がtrue!と評価されるため、これは機能します。

これがお役に立てば幸いです。

于 2012-09-07T11:08:46.600 に答える