簡體   English   中英

jQuery dataTable為特定的引導程序模式設置頁面限制

[英]jQuery dataTable set page limit for specific bootstrap modal

我在同一頁面中有三個,四個甚至五個表,但其中大多數在模式對話框中。 發生的是,我希望模式對話框中沒有的表每頁顯示10個項目,而模式對話框中的表希望它們在3上顯示。

您可以在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);

試試這個例子 它循環所有表,並使用正確的設置一一創建。

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();

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM