欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

jquery datatables 擴展

林雅南2年前10瀏覽0評論
jQuery DataTables 擴展是指在原有的 DataTables 基礎上進行功能拓展,并讓 DataTables 變得更加強大和可定制化。以下介紹幾個常用的擴展示例。

第一種擴展是增強搜索功能。在 DataTables 默認的搜索框中,只能進行簡單的模糊搜索,無法實現高級搜索。使用擴展之后,開發者可以自定義搜索方式、搜索條件、查詢范圍等。例如可以使用文本框、下拉框等輸入篩選條件,實現更加精準的搜索。

//自定義搜索框
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
var min = parseInt($('#min-price').val(), 10);
var max = parseInt($('#max-price').val(), 10);
var price = parseFloat(data[5]) || 0; // use data for the age column
if ((isNaN(min) && isNaN(max)) ||
(isNaN(min) && price<= max) ||
(min<= price && isNaN(max)) ||
(min<= price && price<= max)) {
return true;
}
return false;
}
);
//添加范圍輸入框
$('#min-price, #max-price').keyup(function() {
table.draw();
});

第二種擴展是改善交互體驗。DataTable 默認的分頁和排序功能使用起來并不是很用戶友好,需要點擊多次才能跳轉到指定頁碼或者排序。使用擴展之后,可以實現無刷新頁面跳轉、浮動表頭、排序動畫、數據導出等功能。

//添加翻頁快速跳轉到指定頁造
$.fn.dataTable.ext.feature.push({
"fnInit": function(oSettings) {
var nInput = document.createElement("input");
var nPage = oSettings.nTableWrapper.querySelector('.paginate_page');
nInput.type = "number";
nInput.className = "paginate_input";
nPage.appendChild(nInput);
$(nInput).keyup(function(e) {
if (e.keyCode == 13) {
var iNewStart = oSettings._iDisplayLength * (parseInt(this.value) - 1);
if (iNewStart >= 0) {
oSettings.fnDisplayStart(iNewStart);
$(this).blur();
}
}
});
return nInput;
},
"cFeature": "i",
"sFeature": "Quick Navigation Page"
})
//添加浮動表頭
$('table').floatThead({
scrollContainer: function($table) {
return $table.closest('.dataTables_scrollBody');
}
});

第三種擴展是優化數據交互。DataTable 默認采用的是 AJAX 異步加載數據,但是在面對大數據量時會導致加載耗時較長。使用擴展之后可以采用 Server-Side 模式,即服務器端進行分頁和查詢,只返回當前頁的數據,極大地提高了數據交互效率。

//Server-Side模式
$('#my-table').DataTable({
serverSide: true, //啟用服務端處理模式
pageLength: 10, //每頁展示 10 條數據
ajax: {
type: 'POST',
url: '/api/get_table_data', //請求的接口地址
data: function(d) {
//自定義參數
d.order = [{ column: 0, dir: 'desc' }];
d.extra_search = $('#extra-search').val();
}
},
columns: [
{data: 'id'},
{data: 'name'},
{data: 'age'},
{data: 'gender'},
{data: 'email'},
],
language: {
url: 'https://cdn.datatables.net/plug-ins/1.10.21/i18n/Chinese.json' //中文語言包
}
});
通過靈活使用 DataTables 擴展,我們能夠滿足業務需求,提高開發效率,提升用戶體驗,實現優秀的數據可視化解決方案。