jQuery Datatable条件设置

时间:2016-05-26 16:54:21

标签: javascript jquery datatables

我想知道是否有办法在jQuery DataTable上有条件地设置属性,从而避免重复几乎相同的具有重复属性的表转换调用。

例如,我有一个表,如果某个布尔值为true,我想提供一个Excel导出按钮,但如果该布尔值为false,则不提供它。

if blnExport {
    $('#tblDetail').DataTable({
        bPaginate: false,
        aaSorting: [],
        language: { emptyTable: "No Results Found" },
        dom: 'Bfrtip',
        buttons: [
        {
            extend: 'excel',
            text: 'Export to Excel',
            exportOptions: {
                columns: [0, 1, 2, 3, 4, 5, 6, 7]
            } 
        }]
    });
}    
else {
    $('#tblDetail').DataTable({
        bPaginate: false,
        aaSorting: [],
        language: { emptyTable: "No Results Found" }
    });
}

有没有办法通过一次转换调用来完成此操作?感谢。

1 个答案:

答案 0 :(得分:1)

假设你有function这样的话:

function myFunction(params) {
    //Do something
}

让我们考虑这个例子:

var input = {
    a: 1;
};

if (Math.floor(Math.random() * 2)) {
    input.b = 2;
}

myFunction(input);

正如您在示例中看到的那样,a始终是input的成员,但我们随机化了b是否应该在其中。基本上,这个想法是:

  • 使用您确实需要的内容创建input对象
  • 检查所需内容并添加
  • 将其传递给function

让我们将其应用于您的具体案例:

var input = {
    bPaginate: false,
    aaSorting: [],
    language: { emptyTable: "No Results Found" }
};

if (blnExport) {
    input.dom = 'Bfrtip';
    input.buttons = [{
        extend: 'excel',
        text: 'Export to Excel',
        exportOptions: {
            columns: [0, 1, 2, 3, 4, 5, 6, 7]
        } 
    }];
}
$('#tblDetail').DataTable(input);