EasyUI使用DataGrid實(shí)現(xiàn)動態(tài)列數(shù)據(jù)綁定
最近,在對公司的一個老項(xiàng)目進(jìn)行優(yōu)化調(diào)整。有個使用的三方插件報表頁面,一旦查詢時間過長就會自動異常并使瀏覽器崩潰,由于這個插件只有個前人遺留的dll文件,實(shí)在看不懂里面的代碼無從下手,既然項(xiàng)目前端大部分是基于EasyUI做的,想著就直接用EasyUI的DataGrid做數(shù)據(jù)報表明細(xì)展示。
由于之前很少做過B/S相關(guān)的項(xiàng)目,對于前端了解的不是很多,好在EasyUI框架文檔資料比較多,功能也比較齊全,上手還是比較快的。
下面開始我的第一個關(guān)于報表開發(fā)時遇到的第一個問題:EasyUI DataGrid動態(tài)列數(shù)據(jù)綁定
EasyUI DataGrid動態(tài)列數(shù)據(jù)綁定實(shí)現(xiàn)方式并不是很發(fā)雜,請求到遠(yuǎn)程數(shù)據(jù)后,通過其中一條列表數(shù)據(jù)獲取到列字段,然后在通過datagrid對數(shù)據(jù)進(jìn)行綁定
$.getJSON(url, queryParams, function (result) { ? ? // 清空報表節(jié)點(diǎn)數(shù)據(jù) ? ? $("#tbGrid").empty(); ? ? // 拼裝列頭 ? ? if (result && result.total > 0) { ? ? ? ? var columns = new Array(); ? ? ? ? $.each(result.rows[0], function (i, field) { ? ? ? ? ? ? var column = {}; ? ? ? ? ? ? column["title"] = i; ? ? ? ? ? ? column["field"] = i; ? ? ? ? ? ? columns.push(column); ? ? ? ? }); ? ? ? ? $('#tbGrid').datagrid({ ? ? ? ? ? ? height: 780, ? ? ? ? ? ? singleSelect: true, ? ? ? ? ? ? rownumbers: true, ? ? ? ? ? ? pagination: true, ? ? ? ? ? ? columns: [ ? ? ? ? ? ? ? ? columns ?// 列頭綁定 ? ? ? ? ? ? ], ? ? ? ? ? ? data: result.rows ?// 表格內(nèi)容數(shù)據(jù)綁定 ? ? ? ? }); ? ? ? ? //分頁處理 ? ? ? ? var pager = $('#tbGrid').datagrid('getPager'); ? ? ? ? pager.pagination({ ? ? ? ? ? ? showRefresh: false, ? ? ? ? ? ? total: result.total, ? ? ? ? ? ? pageList: [50, 100, 200, 500], ? ? ? ? ? ? pageSize: queryParams.rows, ? ? ? ? ? ? pageNumber: queryParams.page, ? ? ? ? ? ? buttons: [{ ? ? ? ? ? ? ? ? text: '導(dǎo)出', ? ? ? ? ? ? ? ? iconCls: 'icon-redo', ? ? ? ? ? ? ? ? handler: function () { ? ? ? ? ? ? ? ? ? ? exportToExcel(queryParams); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? }], ? ? ? ? ? ? onSelectPage: function (pageNumber, pageSize) { ? ? ? ? ? ? ? ? $(this).pagination('loading'); ? ? ? ? ? ? ? ? btnRefresh_onclick(pageNumber, pageSize); ? ? ? ? ? ? ? ? $(this).pagination('loaded'); ? ? ? ? ? ? } ? ? ? ? });
后臺返回的數(shù)據(jù)對象是按datagrid要求的格式數(shù)據(jù)返回的
?public class EasyUIPageObject ?{ ? ? ?public object rows { get; set; } ? ? ?public int total { get; set; } ? ? ?public object footer { get; set; } // 可選 ?}
到此這篇關(guān)于EasyUI使用DataGrid實(shí)現(xiàn)動態(tài)列數(shù)據(jù)綁定的文章就介紹到這了,更多相關(guān)EasyUI DataGrid 動態(tài)列數(shù)據(jù)綁定內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)參考:
https://www.jeasyui.com/forum/index.php?topic=2197.0
http://jeasyui.com/documentation/index.php#
- jQuery EasyUI API 中文文檔 - DataGrid數(shù)據(jù)表格
- Jquery下EasyUI組件中的DataGrid結(jié)果集清空方法
- jQuery easyui datagrid動態(tài)查詢數(shù)據(jù)實(shí)例講解
- 擴(kuò)展easyui.datagrid,添加數(shù)據(jù)loading遮罩效果代碼
- jQuery EasyUI datagrid實(shí)現(xiàn)本地分頁的方法
- jQuery EasyUI之DataGrid使用實(shí)例詳解
- jQuery Easyui DataGrid點(diǎn)擊某個單元格即進(jìn)入編輯狀態(tài)焦點(diǎn)移開后保存數(shù)據(jù)
- 實(shí)現(xiàn)easyui的datagrid導(dǎo)出為excel的示例代碼
- 詳解EasyUi控件中的Datagrid
- jquery Easyui Datagrid實(shí)現(xiàn)批量操作(編輯,刪除,添加)
相關(guān)文章
Jquery validation remote 驗(yàn)證的緩存問題解決方法
這篇文章主要介紹了Jquery validation remote 驗(yàn)證的緩存問題的解決方法 ,需要的朋友可以參考下2014-03-03jQueryeasyui 中如何使用datetimebox 取兩個日期間相隔的天數(shù)
這篇文章主要介紹了jQueryeasyui 中使用datetimebox 取兩個日期間相隔的天數(shù),需要的朋友參考下吧2017-06-06jQuery實(shí)現(xiàn)動態(tài)添加節(jié)點(diǎn)與遍歷節(jié)點(diǎn)功能示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)動態(tài)添加節(jié)點(diǎn)與遍歷節(jié)點(diǎn)功能,結(jié)合實(shí)例形式分析了jQuery針對頁面元素節(jié)點(diǎn)元素的動態(tài)添加與遍歷相關(guān)操作技巧,需要的朋友可以參考下2017-11-11jQuery函數(shù)的第二個參數(shù)獲取指定上下文中的DOM元素
這篇文章主要介紹了jQuery函數(shù)的第二個參數(shù)獲取指定上下文中的DOM元素,需要的朋友可以參考下2014-05-05基于jquery實(shí)現(xiàn)控制經(jīng)緯度顯示地圖與衛(wèi)星
下文與大家分享下使用jquery實(shí)現(xiàn)控制經(jīng)緯度顯示地圖與衛(wèi)星,感興趣的朋友可以參考下哈,希望對你有所幫助2013-05-05