EasyUI使用DataGrid實現(xiàn)動態(tài)列數(shù)據(jù)綁定
最近,在對公司的一個老項目進行優(yōu)化調整。有個使用的三方插件報表頁面,一旦查詢時間過長就會自動異常并使瀏覽器崩潰,由于這個插件只有個前人遺留的dll文件,實在看不懂里面的代碼無從下手,既然項目前端大部分是基于EasyUI做的,想著就直接用EasyUI的DataGrid做數(shù)據(jù)報表明細展示。
由于之前很少做過B/S相關的項目,對于前端了解的不是很多,好在EasyUI框架文檔資料比較多,功能也比較齊全,上手還是比較快的。
下面開始我的第一個關于報表開發(fā)時遇到的第一個問題:EasyUI DataGrid動態(tài)列數(shù)據(jù)綁定
EasyUI DataGrid動態(tài)列數(shù)據(jù)綁定實現(xiàn)方式并不是很發(fā)雜,請求到遠程數(shù)據(jù)后,通過其中一條列表數(shù)據(jù)獲取到列字段,然后在通過datagrid對數(shù)據(jù)進行綁定
$.getJSON(url, queryParams, function (result) { ? ? // 清空報表節(jié)點數(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 ?// 表格內容數(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: '導出', ? ? ? ? ? ? ? ? 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; } // 可選 ?}
到此這篇關于EasyUI使用DataGrid實現(xiàn)動態(tài)列數(shù)據(jù)綁定的文章就介紹到這了,更多相關EasyUI DataGrid 動態(tài)列數(shù)據(jù)綁定內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關參考:
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結果集清空方法
- jQuery easyui datagrid動態(tài)查詢數(shù)據(jù)實例講解
- 擴展easyui.datagrid,添加數(shù)據(jù)loading遮罩效果代碼
- jQuery EasyUI datagrid實現(xiàn)本地分頁的方法
- jQuery EasyUI之DataGrid使用實例詳解
- jQuery Easyui DataGrid點擊某個單元格即進入編輯狀態(tài)焦點移開后保存數(shù)據(jù)
- 實現(xiàn)easyui的datagrid導出為excel的示例代碼
- 詳解EasyUi控件中的Datagrid
- jquery Easyui Datagrid實現(xiàn)批量操作(編輯,刪除,添加)
相關文章
Jquery validation remote 驗證的緩存問題解決方法
這篇文章主要介紹了Jquery validation remote 驗證的緩存問題的解決方法 ,需要的朋友可以參考下2014-03-03jQueryeasyui 中如何使用datetimebox 取兩個日期間相隔的天數(shù)
這篇文章主要介紹了jQueryeasyui 中使用datetimebox 取兩個日期間相隔的天數(shù),需要的朋友參考下吧2017-06-06jQuery實現(xiàn)動態(tài)添加節(jié)點與遍歷節(jié)點功能示例
這篇文章主要介紹了jQuery實現(xiàn)動態(tài)添加節(jié)點與遍歷節(jié)點功能,結合實例形式分析了jQuery針對頁面元素節(jié)點元素的動態(tài)添加與遍歷相關操作技巧,需要的朋友可以參考下2017-11-11jQuery函數(shù)的第二個參數(shù)獲取指定上下文中的DOM元素
這篇文章主要介紹了jQuery函數(shù)的第二個參數(shù)獲取指定上下文中的DOM元素,需要的朋友可以參考下2014-05-05基于jquery實現(xiàn)控制經緯度顯示地圖與衛(wèi)星
下文與大家分享下使用jquery實現(xiàn)控制經緯度顯示地圖與衛(wèi)星,感興趣的朋友可以參考下哈,希望對你有所幫助2013-05-05