0

データテーブルを作成する関数に json オブジェクトを渡しています。columnFilter を使用して各列にフィルターを追加し、配列を使用してフィルター リストを埋めています。

http://imgur.com/ehV6lZPここに良いフィルターを示す写真があります。

問題は、新しいjsonで関数を呼び出すと、列フィルターが以前のフィルター値を含む大きな文字列に変わることです。これは、配列の長さを 0 に設定していて、json が空であっても発生します。

このhttp://imgur.com/fi6Y8rz pic は、テーブルが空の json でリロードされたときのフィルター ヘッダーの以前の値のマッシュを示しています。

オンラインの多くの例で、私は人々がこれを使用しているのを見ます:

{ type: "select"} 

それは彼らのためにリストを作成しているようですが、私にとってはうまくいきません。この方法は、テーブルをリロードするとき以外は問題ないようです。

この関数を呼び出すたびに、これらのフィルターの選択をクリアする方法についてのガイダンスを探しています。

function popNoteTable(oJson) {
  //these store the unique values for filtering columns
  var oTitles = [];
  var oLocs = [];
  var oSigned = [];

  if (oJson.M_REC.NOTE.length > 0) {
    oTitles = getUniqueJsonValuesByCol("S_TITLE", oJson.M_REC.NOTE);
    oLocs = getUniqueJsonValuesByCol("S_FACILITY", oJson.M_REC.NOTE);
    oSigned = getUniqueJsonValuesByCol("S_SIGNED_BY", oJson.M_REC.NOTE);
  } else {
    oTitles.length = 0;
    oLocs.length = 0;
    oSigned.length = 0;
  }

  var oTable = $('#example').dataTable({
    "bFilter": true,
    "iDisplayLength": 50,
    "bProcessing": true,
    "bDestroy": true,
    "aaData": oJson.M_REC.NOTE,
    "bAutoWidth": false,
    "aoColumns": [
      {"mDataProp": "S_TITLE"},
      {"mDataProp": "S_FACILITY"},
      {"mDataProp": "S_SIGNED_BY"},
      {"mDataProp": "S_SIGN_DT_TM"},
      {"mDataProp": "F_EVENT_ID", "bVisible": false}
    ]
    }).columnFilter({
    sPlaceHolder: "head:before",
    aoColumns: [
      {type: "select", values: oTitles},
      {type: "select", values: oLocs},
      {type: "select", values: oSigned},
      null,
      null
    ]
});
4

1 に答える 1