關於datatable基本使用有很多帖子說的很詳細,在此不做詳述。
最近使用datatable處理伺服器返回分頁資料時遇到問題,問題解決後有一些心得分享一下:
1. 如果開啟介面通過datatable給**填充資料,必須把datatable呼叫放在document.ready方法裡面,或者放在$(function());裡面二者等價。
2. 最簡單的使用,伺服器按照datatable要求的分頁結構返回分頁資訊,datatable直接解析並使用
1var list = $('#personlist').datatable(, ,, 19]
20 });
這種情況伺服器端返回的資料結構必須是:
1public
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引數設定處理函式
1var 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...