[英]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.