jQuery dataTable设置特定引导模式的页面限制

时间:2014-08-26 11:00:15

标签: javascript jquery twitter-bootstrap datatable

我在同一页面中有三个,四个,有时五个表,但大多数是在模态对话框中。 会发生的是,我希望不在模态对话框中的表格每页显示10个项目,并且我希望它们在3个模式对话框中显示。

您可以查看working example in jsfiddle

我使用以下参数初始化我的设置(默认情况下):

var settings = {
        "bPaginate": true,
            "bLengthChange": false,
            "bInfo": true,
            "bAutoWidth": false,
            'aoColumnDefs': [{
            'bSortable': false,
                'aTargets': ['nosorting']
        }],
            'order': [
            [0, 'DESC']
        ]
    }

默认情况下,每页有10条记录作为限制。 之后,我需要验证表是否属于模态,如果是,则添加属性名称' pageLength'指定限制。

if ($(this).closest('.fade').length > 0) {
    settings.push({
       "pageLength": 3
    });
}

我认为其中一个问题是因为设置实际上并不是一个对象数组,所以我应该改为: var settings = [];

settings.push({bPaginate: true, bLengthChange: false}); // etc
// or
settings.push({"bPaginate": true, "bLengthChange: false"}); // etc

但是如果我使用这种方法,当我将这个变量添加到插件时,dataTable就不会识别它。

$('.dataTable').dataTable(settings);

1 个答案:

答案 0 :(得分:2)

试试这个example。它循环所有表并使用正确的设置逐个创建它们。

js对象中的设置。您可以像settings.pageLength一样简单地否决它。

if ($('.dataTable').length > 0) {
    var settings = {
        "bPaginate": true,
            "bLengthChange": false,
            "bInfo": true,
            "bAutoWidth": false,
            'aoColumnDefs': [{
            'bSortable': false,
                'aTargets': ['nosorting']
        }],
            'order': [
            [0, 'DESC']
        ]
    }
    $('.dataTable').each(function () {

        if ($(this).closest('.fade').length > 0) {
            settings.pageLength = 3;
        }

        $(this).dataTable(settings);


    });

    $('.dataTables_filter').empty();

}