2017-07-26 14 views
0

jqGridテーブルの動的列を作成するデモを行いましたが、いくつかの問題がありました。これはjqGridコードスニペットです:jgGridを使用した動的列の作成に関する問題

$.ajax(
    { 
     type: "get", 
     url: "reports/providerList", 
     dataType: "json", 
     success: function(result) 
     { 
      var colNames = result.rows.colNames; 
      var colModels = result.rows.colModels; 
      $(grid_selector).jqGrid('GridUnload'); 

      jQuery(grid_selector).jqGrid({ 
       url: 'reports/getData', 
       datatype: 'json', 
       mtype: 'get', 
       colNames: colNames, 
       colModel: colModels, 
       viewrecords : true, 
       rownumbers:true, 
       rowNum:15, 
       rowList:[15,30], 
       pager : pager_selector, 
       altRows: true, 
       loadComplete : function() { 
        var table = this; 
        setTimeout(function(){ 
         updatePagerIcons(table); 
         enableTooltips(table); 
        }, 0); 
       }, 
      }); 
     }, 
     error: function(x, e) 
     { 
      alert(x.readyState + " "+ x.status +" "+ e.msg); 
     } 
    }); 

私のバックエンド・コントローラー:バックエンドで

@GetMapping("/providerList") 
    @ResponseBody 
    public Map<String, Object> providerList(@RequestParam(value = "rows", required = false) Integer pageSize, @RequestParam(value = "page", required = false) Integer pageNumber){ 
     JQGridModel jqGridModel = new JQGridModel(); 
     Map<String, Object> map = new HashedMap(); 
     map.put("total", 4); 
     map.put("rows", jqGridModel); 
     map.put("records", 6); 
     return map; 
    } 

    @GetMapping("/getData") 
    @ResponseBody 
    public Map<String, Object> getData(){ 
     List<ColData> colDatas = new ArrayList<>(); 
     ColData colData1 = new ColData(2, "hello", new Date().toString(), "true", "admin"); 
     ColData colData2 = new ColData(5, "say", new Date().toString(), "false", "pechen"); 
     colDatas.add(colData1); 
     colDatas.add(colData2); 
     colDatas.add(colData2); 

     Map<String, Object> map = new HashedMap(); 
     map.put("total", 4); 
     map.put("rows", colDatas); 
     map.put("records", 6); 
     return map; 
    } 

データ形式:

public class JQGridModel { 
    private List<String> colNames; 
    private List<ColModel> colModels; 

    public JQGridModel() { 
     colNames = new ArrayList<>(); 
     colNames.add("id"); 
     colNames.add("name"); 
     colNames.add("createTime"); 
     colNames.add("status"); 
     colNames.add("updateBy"); 

     colModels = new ArrayList<>(); 
     ColModel colModel1 = new ColModel("id", "id", 60f, false, false); 
     ColModel colModel2 = new ColModel("name", "index", 60f, false, false); 
     colModels.add(colModel1); 
     colModels.add(colModel2); 
     colModels.add(colModel2); 
     colModels.add(colModel2); 
     colModels.add(colModel2); 
    } 
} 

しかし、私はこれだけに示され、何のデータを成果ません取得しますいくつかの列: enter image description here

私は気づいた/reports/providerList/reports/getDataがデバッグモードでヒットしました。何がうまくいかない、誰でも助けることができる?

答えて

0

JQGridModelコンストラクタの最後の行にエラーの原因があります。 colModels.add(colModel2)を複数回使用します。それは間違っています。 colNamesにはというラベルが含まれています。テキストは列見出しに表示されます。 1つは、colNamesに重複または空の文字列を使用することを許可します。反対側ではcolModelユニークnameの値を含む必要があります。値は空ではありません。空白を含むことはできません。

JQGridModelコンストラクタcolModelsのコードを変更する必要があります。名前には、現在colNamesと入力してください。

+0

ありがとう、実際にはエラーの原因です、 'name'はcolDataの' field'と同じでなければなりません。 –

+0

@DavePateral:あなたは大歓迎です! – Oleg

関連する問題