jquery dataTable數據顯示問題

jquery dataTable插件使用點記錄
使用dataTable要按照文檔要求的格式纔可顯示數據,https://www.datatables.net/manual/data/
這裏可以看到有幾種格式,我項目中使用的是Object類型的數據,即controller返回的data爲List格式,Object一般爲自己定義的bean;也可以是List<Map<String,Object>>,因爲我的dao層使用的是mybatis,如果不自定義對象,mybatis默認映射返回Map<String, Object>,如果是多個對象,則返回的是List<Map<String, Object>>,實際上直接返回List<Map<String, Object>>就可以在dataTable中顯示。
今天遇到的情況是無法顯示,一般前端瀏覽器開發工具看到的報錯爲 Uncaught TypeError: Cannot read property ‘length’ of undefined,
以前我看到這種異常會以爲是插件報錯等等等等,後來發現是數據什麼的不對。
這裏有兩種情況:
var table = $(’#example0’).DataTable({
“ajax”:urlUtil+"/getOperData/operInfo",
“columns”: [
{ “data”: “operId” },
{ “data”: “loginName” },
{ “data”: “operName” },
{ “data”: “operIp” },
{ “data”: “operEmail” },
{ “data”: “operTelephone” },
{ “data”: “operState” }
]};
如果ajax是這麼寫的話: 如果返回數據爲List,需要將它放到map裏面,像這樣(我這裏舉個栗子,大家要注意規範):
HashMap map = new HashMap();
map.put(“data”, List);
然後返回json即可;

第二種情況是:
如果不想像上面那麼麻煩,而直接返回list的話,要這樣寫:
var table = $(’#example0’).DataTable({
“ajax”:{
url: urlUtil+"/getOperData/operInfo",
type: “GET”,
dataSrc: function(data){
return data;
}
},
“columns”: [
{ “data”: “operId” },
{ “data”: “loginName” },
{ “data”: “operName” },
{ “data”: “operIp” },
{ “data”: “operEmail” },
{ “data”: “operTelephone” },
{ “data”: “operState” }
]};
當然了,不知道大家遇到的情況是不是一樣,我這裏只是做一些記錄,具體原理還沒有深究。
告辭了。。。

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