2017-01-27 7 views
1

次のフィルタツールバーのjqGridがあります。フィルタリングが機能しています。しかし、最初の名前の検索欄に「N」と入力すると、「N」が入っていないレコードがリストされます。これは以下のスクリーンショットに示されています。どうすればこの問題を解決できますか?jqGridフィルタツールバーに検索キーのないレコードが表示されます

Fiddle

enter image description here

CODE

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Test</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/themes/start/jquery-ui.css" rel="stylesheet" /> 
    <link href="https://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/css/ui.jqgrid.css" rel="stylesheet" /> 
    <script src="https://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/js/jquery.jqGrid.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/js/i18n/grid.locale-en.js"></script> 



    <script type="text/javascript"> 
    //<![CDATA[ 
     $(document).ready(function() { 
      var myData = [ 

       { "id": "35", "firstname": null, "codeval": "G", "note": "xx7866", "amount": "23" }, 
       { "id": "73", "firstname": null, "codeval": "W", "note": "dd1047", "amount": "34" }, 
       { "id": "75", "firstname": "LORA", "codeval": "H", "note": "rr7323", "amount": "56" }, 
       { "id": "95", "firstname": "EST", "codeval": "M", "note": "gg574", "amount": "55" } 
       ], 

       myGrid = $("#list"); 

      myGrid.jqGrid({ 
       datatype:'local', 
       data: myData, 
       colNames: ['ID', 'FirstName', 'Code', 'Amount', 'Note'], 
       colModel:[ 
        {name:'id',index:'id',width:70,align:'center',sorttype: 'int'}, 
        {name:'firstname',index:'firstname',width:80, align:'center'}, 
        { name: 'codeval', index: 'codeval', width: 70 }, 
        {name:'amount',index:'amount',width:100, formatter:'number', align:'right'}, 
        {name:'note',index:'note',width:100,sortable:false} 
       ], 
       rowNum:10, 
       pager: '#pager', 
       gridview:true, 
       ignoreCase:true, 
       rownumbers:true, 
       viewrecords: true, 
       sortorder: 'desc', 
       height: '100%' 
      }); 
      myGrid.jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false, defaultSearch: "cn" }); 

     }); 
    //]]> 
    </script> 
</head> 
<body> 
    <table id="list"><tr><td/></tr></table> 
    <div id="pager"></div> 

</body> 
</html> 

答えて

1

あなたはjqGrid 4.6のバグを説明しました。 jqGridコードの

The line

phrase.push("String("+s+")"); 

phrase.push("String(" + s + " || '')"); 

主な問題に、例えば、固定されなければならない:約3である、4.6:あなたはjqGridの死者バージョンを使用年齢はです。 jqGridには2つの主要なフォークがあります:Guriddo jqGrid JSの商用版と代替フォークfree jqGridの開発です。

あなたが自由jqGrid(バージョン4.13.6)の現在のリリースを使用する場合は、その後、私は

{ name: 'firstname', width: 80, align: 'center', 
    jsonmap: function (item) { 
     return item.firstname != null ? item.firstname : ""; 
    } } 

はデモを参照してください。回避策としてjsonmapを使用するためにあなたを提案できますのhttps://jsfiddle.net/OlegKi/rqab1veh/1/

を原因、私は無料のjqGrid(the commit参照)の最新コードでバグを修正しました。固定cdeはGitHubからダウンロードできます。デモhttps://jsfiddle.net/OlegKi/rqab1veh/3/で、GitHubの無料のjqGridの最新コードを使用している場合にコードに問題がないことを確認できます。

報告した問題の回避策はjqGrid 4.6では表示されません。無料のjqGridの最新コードにアップグレードするか、前に説明したバグ修正を使用してjqGrid 4.6のカスタムビルドを作成することをお勧めします。

関連する問題