隐藏jQuery dataTable中的列

时间:2018-04-04 12:43:36

标签: javascript jquery datatables

我正在使用jQuery Datatable在jsp页面中呈现表格。表中的列数可能因服务器端而异。 我的代码是:

<th width="10%">Beneficiary Bank</th>
<th width="10%">Depositor's Bank</th>
<th width="10%">Type</th>
<th width="8%">Reference No</th>
<th width="8%">Amount</th>  
<th width="8%">Date</th>
<th width="8%">Bonus?</th>
<th width="8%">Remarks</th>

我有8列,但根据某些条件,我必须隐藏其中的一些。 我正在渲染这样的表:

jQuery('#gridTable').dataTable( {
            "aaData":data,
            "aoColumns": [
                      { "mDataProp": "prop1", 
                        "bVisible" : function() {
                            if(condition1) {
                                return true;
                            } else {
                                return false;
                            }
                        }
                      },

                      { "mDataProp": "prop2"
                      },

                      { "mDataProp": "prop3"
                      },

                      { "mDataProp": "propp8",
                        "bVisible" : function(){
                            if(condition2) {
                                return true;
                            } else {
                                return false;
                            }
                        }
                      },

                      { "mRender": "prop9",
                        "bVisible" : function(){
                            if(condition2) {
                                return true;
                            } else {
                                return false;
                            }
                        }
                      },

                      { "mDataProp": "prop10",
                         "bVisible" : function(){
                            if(condition2) {
                                return true;
                            } else {
                                return false;
                            }
                        }
                      },

                      { "mDataProp": "prop11", 
                        "bVisible" : function(){
                            if(condition3) {
                                return false;
                            } else {
                                return true;
                            }
                        }
                      },

                      { "mDataProp": "prop12", 
                        "bVisible" : function(){
                                if(condition3) {
                                    return false;
                                } else {
                                    return true;
                                }
                        }
                      },

                  ]  ,
                "order": [] 
              } );

根据我的代码,取决于condition1第一列应该隐藏。类似地,列4-8也应该隐藏/显示,具体取决于某些条件。但他们并没有隐藏。在表格中,显示所有列。

我在互联网上搜索了这个,但没有一个解决方案有帮助。

1 个答案:

答案 0 :(得分:1)

bVisible属性是布尔值,它不支持函数。但是,您可以将逻辑移到initComplete函数中,并使用column().visible()隐藏所需的列。