2016-12-16 6 views
0

私はdatatableを表示する必要があるページを構築しています。 条件に基づいて、このテーブルには5または6の列が表示されます。特定の列をデータテーブルから非表示にする方法はありますか?

これは、6列のテーブルを表示するには.jsファイルに私のコードです:条件に基づいて

if(Display) 
{ 
    myself.set_DataTable(myself._findjcontrol("tTable1"));  
    myself.get_DataTable().dataTable(
    { 
     "sDom": '<"top">rt<"bottom"flp><"clear">', 
     "aoColumns": [ 
      { "sType": "string" }, //Column1 
      {"sType": "string" }, //Column2 
      {"sType": "string" }, //Column3 
      {"sType": "string" }, //Column4 
      {"sType": "string" }, //Column5 
      {"sType": "html"} //Column6 
     ], 
     "bPaginate": false, 
     "bAutoWidth": false, 
     "bJQueryUI": false, 
     "bFilter": false, 
     "bPage": false, 
     "bSort": false, 
     "binfo": false, 
     "bSortClasses": false 
    }); 
} 
else 
{ 
    myself.set_DataTable(myself._findjcontrol("tTable_2")); 
    myself.get_DataTable().dataTable(
    { 
     "sDom": '<"top">rt<"bottom"flp><"clear">', 
     "aoColumns": [ 
      { "sType": "string" }, //Column1 
      {"sType": "string" }, //Column2 
      {"sType": "string" }, //Column3 
      {"sType": "string" }, //Column4 
      {"sType": "string" } //Column5 
     ], 
     "bPaginate": false, 
     "bAutoWidth": false, 
     "bJQueryUI": false, 
     "bFilter": false, 
     "bPage": false, 
     "bSort": false, 
     "binfo": false, 
     "bSortClasses": false 
    }); 
} 

、私は二回、コードを繰り返しています。条件に基づいて、そのプロパティを変更して列定義に追加する方法がありますか。このようなもの:

var isDisplay = false; 
if(Display) 
{ 
    isDisplay = true; 
} 
else 
{ 
    isDisplay = false; 
} 

    /* the rest of code */ 

    {"sType": "string", isDisplay } //Column5 

/* the rest of code */ 

そういうことは可能でしょうか?

答えて

0

私が正しく何が必要理解している場合は、コードを繰り返さずに変数を使用して、設定を分離することができます。また

var control = "tTable_2" 
    , columns = [ 
      { "sType": "string" }, //Column1 
      {"sType": "string" }, //Column2 
      {"sType": "string" }, //Column3 
      {"sType": "string" }, //Column4 
      {"sType": "string" } //Column5 
      ]; 
if(Display) 
{ 
    columns.push({"sType": "html"}); //Column6 
    control = "tTable_1"; 
} 


myself.set_DataTable(myself._findjcontrol(control)); 
myself.get_DataTable().dataTable(
{ 
    "sDom": '<"top">rt<"bottom"flp><"clear">', 
    "aoColumns": columns, 
    "bPaginate": false, 
    "bAutoWidth": false, 
    "bJQueryUI": false, 
    "bFilter": false, 
    "bPage": false, 
    "bSort": false, 
    "binfo": false, 
    "bSortClasses": false 
}); 

を、あなたを助けることができるDataTableのfeatureがありますようです。あなたが/ショーを非表示にする列にプロパティbVisibleを使用してみてください:

myself.set_DataTable(myself._findjcontrol("tTable1"));  
myself.get_DataTable().dataTable(
{ 
    "sDom": '<"top">rt<"bottom"flp><"clear">', 
    "aoColumns": [ 
     { "sType": "string" }, //Column1 
     {"sType": "string" }, //Column2 
     {"sType": "string" }, //Column3 
     {"sType": "string" }, //Column4 
     {"sType": "string" }, //Column5 
     {"sType": "html", "bVisible": Display} //Column6 
    ], 
    "bPaginate": false, 
    "bAutoWidth": false, 
    "bJQueryUI": false, 
    "bFilter": false, 
    "bPage": false, 
    "bSort": false, 
    "binfo": false, 
    "bSortClasses": false 
}); 

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

関連する問題