JQuery的dataTable實現分頁

2022-08-26 19:36:10 字數 1511 閱讀 1659

關於datatable基本使用有很多帖子說的很詳細,在此不做詳述。

最近使用datatable處理伺服器返回分頁資料時遇到問題,問題解決後有一些心得分享一下:

1. 如果開啟介面通過datatable給**填充資料,必須把datatable呼叫放在document.ready方法裡面,或者放在$(function());裡面二者等價。

2. 最簡單的使用,伺服器按照datatable要求的分頁結構返回分頁資訊,datatable直接解析並使用

1

var list = $('#personlist').datatable(, ,, 19]

20 });

這種情況伺服器端返回的資料結構必須是:

1

public

class

page

前台收到page物件後會解析成datatable的page物件,取出aadata作為表資料。

3. 我們現在服務端基本都是有結構化的返回結構體,如:

]}}這種資料結構不能直接傳給datatable處理,無法識別。我們需要通過fnserverdata對資料進行處理。

list = $('#personlist').datatable( 

else

}});

},'aocolumns': [ , ,

]//$_get['scolumns']將接收到aocolumns傳遞資料

});

fnserverdata主要是在將請求傳送到server之前對資料進行處理,在收到server返回後對資料進行處理,方便datatable填充資料。

'fnserverdata' : function (ssource, aodata, fncallback) 三個引數,ssource會傳入datatable的sajaxsource,aodata會傳入datatable組織好的要發給server的資料,包括分頁資訊,如果不把這些資料繼承下來發給服務,分頁的請求資訊會丟失,會導致server收到的分頁資訊中的idisplaylength值為0,將aodata傳入ajax的data屬性以繼承傳遞,fncallback是datatable後續處理資料的**函式,在ajax的success指定的方法中將資料處理(對於我們上面的返回資料結構,從返回結果中取出data作為datatable的接收資料)後的結果傳遞給fncallback方法。

4. 如果在**繪製完成後需要使用返回的**資料做其他操作 

使用datatable的fndrawcallback引數設定處理函式

1

var list = $('#personlist').datatable(, ,,

19],

20 'fndrawcallback': function

(result)

24 });

fndrawcallback的呼叫不會影響**資料顯示,因為此時**已經繪製完成。

WebService返回DataTable問題

今天做專案時,想在webservice中返回datatable,在單位沒成功,看網上有人說datable在.net1.1中是沒有序列化的,不能直接在webservice中返回,可以返回dataset.晚上回家又上網找了一下,看到說法基本一致,還有一篇被引用很多的文章說在asp.net2.0中data...

簡單認識DataSet與DataTable

dataset 是放在記憶體中的,對dataset中資料的修改並不直接反應到資料庫,要通過 dataadapter 的 update 方法更新回資料庫 dataset相當你用的資料庫 datatable相當於你的表。乙個 dataset 可以包含多個 datatable dataset 由表 關係和...

簡單談談DataSet與DataTable的區別

dataset 資料集。一般包含多個datatable,用的時候,dataset 表名 得到datatable datatable 資料表。一 sqldataadapter da new sqldataadapter cmd datatable dt new datatable da.fill dt...