2017-08-08 21 views
0

私のJSONでは、配列とオブジェクトとして入れ子になったObjectデータがあります。それはそのように見えます:JQuery Datatables入れ子になったオブジェクトデータ(配列内のオブジェクト)を持つ列のフィルタリング

"contentVMlist":[ 
      { 
       "dbContID":3, 
       "dbContType":2, 
      }, 
      { 
       "dbContID":1, 
       "dbContType":1, 
      } 

"aoColumns: [ { "data": "contentVMlist.[ ].dbContType"} ]"私はテーブルにデータを取得します。 テーブルの欄に「2 1」と表示されます。

this.api().columns([9]).every(function() { 
var column = this; 
else if (column[0] == 9) { 
var select2 = $('<select> </select>') // the select is not so short i just shortened it now 
          .appendTo($('#dbContType')).on('change', function() { 
             var val = $.fn.dataTable.util.escapeRegex(
              $(this).val() 
             ); 
column.search(val ? '^' + val + '$' : '', true, false).draw(); 
}); 

"contentVMlist" は1つのだけのエントリを持っている場合、すべてが正常に動作します。しかし、2つ以上のエントリ(「1 3」や「1 3 2」など)がある場合、そのエントリを単一の発生として見ることはできません。選択肢が「1 3 2」であれば機能しますが、ユーザーは1つしか選択したくない場合は、その種類のすべてが表示されます(2つ以上表示される場合)

これは何ですか? 私はいくつかの仕事をしなかったことを試しました。

+0

?選択リストにすべてのdbContType値のリストがありますか? – balint

+0

@balint私は、dbContTypesを持つドロップダウンフィルターを持っています。ユーザーは、そのフィルタ – Shaorandra

答えて

0

私は最も簡単な方法は、このネストされた配列を反復処理することです推測:あなたが達成するために何をしようとしている

var contentVMlist= []; // get a reference to the nested array 
jQuery.each(contentVMlist, function() { 
    console.log(this.dbContType); // check it 
    selectObj.appendTo("<option>"+this.dbContType+"</option>"); 
}); 
+0

を使用してデータテーブルをフィルタリングできます。これは、ドロップダウンを正しく満たすためのものですか?私はselect-options "1"、 "2"などのドロップダウンを持っています。データテーブルをフィルタリングします。ただ1つのconttypeがある列だけです。 2つのconttypes( "1 2"のような)がある場合、それはそれらを認識しません。申し訳ありませんが、私の質問は明らかではなかった – Shaorandra

関連する問題