angular-datatables學習與實踐總結5

這篇文章記錄一下datatables的服務器端模式。

當需要顯示的數據量太大時,採用客戶端模式效率就會比較低下,此時就需要服務器端模式。datatables的服務端模式開啓方式:

serverSide: true

服務端模式需要ajax的配合,datatables的每一次翻頁,查找,排序等時都會自動調用ajax。此時ajax可以是Object也可以是function。例如:

ajax: {
                  url: '...',
                  type: "POST",
                  contentType: 'application/json; charset=utf-8',
                  data: function (d) {
                    ...
                  }
                  
                },//ajax

或者:

ajax: (d: any, callback) => {
        that.http
          .post<any>(
          url,
          d, {}
          ).subscribe(resp => {
            callback(resp);
          });
      },

此時,d是一個對象,這是datatables自動賦予的,這個對象有如下屬性:

columns:表格的列定義;

draw:表格繪製的次數;

length:表格一頁的行數;

order:表格當前的排序方式;

search:表格當前的過濾條件;

start:需求數據開始的索引;

把這個對象發送到服務器端,服務器就可以根據這些信息發回前端需要的數據。服務器發回前端的數據需要包含以下屬性:

data:具體的數據;

draw:同上;

recordsFiltered:在過濾條件下一共有多少條數據滿足要求;

recordsTotal:數據總數;

datatables就可以根據這些信息對錶格進行繪製。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章