视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用EasyUI如何绑定Json数据源
2020-11-27 19:36:14 责编:小OO
文档


本篇文章主要介绍了EasyUI的DataGrid绑定Json数据源的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

EasyUI给表格绑定数据是最常用的方法,小编分享一下总结出来的两种绑定表格方法,知识在于积累。

第一种:数据存放在数据集中,每一行对应多个值,利用循环把数据绑定到表格

前台代码:

<table id="dg" class="easyui-datagrid" style="width:100%;height:100%;" title="需要设置表格标题" data-options=" 
 rownumbers:true, 
 singleSelect:true, 
 @*autoRowHeight:false,*@ 
 pagination:true 
 @*pageSize:10*@"> 
 <thead> 
 <tr> 
 <th field="colum1">列1</th> 
 <th field="colum2">列2</th> 
 <th field="colum3">列3</th> 
 <th field="colum4">列4</th> 
 <th field="colum5">列5</th> 
 <th field="colum6">列6</th> 
 </tr> 
 </thead> 
 </table>

JS代码:

(function ($) { 
 function pagerFilter(data) { 
 if ($.isArray(data)) { // is array 
 data = { 
 total: data.length, 
 rows: data 
 } 
 } 
 var target = this; 
 var dg = $(target); 
 var state = dg.data('datagrid'); 
 var opts = dg.datagrid('options'); 
 if (!state.allRows) { 
 state.allRows = (data.rows); 
 } 
 if (!opts.remoteSort && opts.sortName) { 
 var names = opts.sortName.split(','); 
 var orders = opts.sortOrder.split(','); 
 state.allRows.sort(function (r1, r2) { 
 var r = 0; 
 for (var i = 0; i < names.length; i++) { 
 var sn = names[i]; 
 var so = orders[i]; 
 var col = $(target).datagrid('getColumnOption', sn); 
 var sortFunc = col.sorter || function (a, b) { 
 return a == b ? 0 : (a > b ? 1 : -1); 
 }; 
 r = sortFunc(r1[sn], r2[sn]) * (so == 'asc' ? 1 : -1); 
 if (r != 0) { 
 return r; 
 } 
 } 
 return r; 
 }); 
 } 
 var start = (opts.pageNumber - 1) * parseInt(opts.pageSize); 
 var end = start + parseInt(opts.pageSize); 
 data.rows = state.allRows.slice(start, end); 
 return data; 
 } 
 
 var loadDataMethod = $.fn.datagrid.methods.loadData; 
 var deleteRowMethod = $.fn.datagrid.methods.deleteRow; 
 $.extend($.fn.datagrid.methods, { 
 clientPaging: function (jq) { 
 return jq.each(function () { 
 var dg = $(this); 
 var state = dg.data('datagrid'); 
 var opts = state.options; 
 opts.loadFilter = pagerFilter; 
 var onBeforeLoad = opts.onBeforeLoad; 
 opts.onBeforeLoad = function (param) { 
 state.allRows = null; 
 return onBeforeLoad.call(this, param); 
 } 
 var pager = dg.datagrid('getPager'); 
 pager.pagination({ 
 onSelectPage: function (pageNum, pageSize) { 
 opts.pageNumber = pageNum; 
 opts.pageSize = pageSize; 
 pager.pagination('refresh', { 
 pageNumber: pageNum, 
 pageSize: pageSize 
 }); 
 dg.datagrid('loadData', state.allRows); 
 } 
 }); 
 $(this).datagrid('loadData', state.data); 
 if (opts.url) { 
 $(this).datagrid('reload'); 
 } 
 }); 
 }, 
 loadData: function (jq, data) { 
 jq.each(function () { 
 $(this).data('datagrid').allRows = null; 
 }); 
 return loadDataMethod.call($.fn.datagrid.methods, jq, data); 
 }, 
 deleteRow: function (jq, index) { 
 return jq.each(function () { 
 var row = $(this).datagrid('getRows')[index]; 
 deleteRowMethod.call($.fn.datagrid.methods, $(this), index); 
 var state = $(this).data('datagrid'); 
 if (state.options.loadFilter == pagerFilter) { 
 for (var i = 0; i < state.allRows.length; i++) { 
 if (state.allRows[i] == row) { 
 state.allRows.splice(i, 1); 
 break; 
 } 
 } 
 $(this).datagrid('loadData', state.allRows); 
 } 
 }); 
 }, 
 getAllRows: function (jq) { 
 return jq.data('datagrid').allRows; 
 } 
 }) 
})(jQuery);
 $.ajax({ 
 type: "get", //AJAX提交方式 
 url: "路径", 
 datatype: "json", 
 data: "userid=" + "id"+ "&username=" + "name", //向后台传递参数,无需传递参数就可以删除 
 success: function (data) { 
 var rows = []; 
 
 for (var i = 0; i < data.length; i++) { //data是返回值的集合 
 rows.push({ //把data数据对应的值压到rows对应数组中 
 colum1: data[i].userid, 
 colum2: data[i].leve, 
 colum3: data[i].Username, 
 colum4: data[i].Tel, 
 colum5: data[i].Mail, 
 colum6: data[i].Explain 
 }); 
 } 
 $('#dg').datagrid({ data: rows }).datagrid('clientPaging'); 
 }, error: function () { //执行出错时执行的方法 
 $.messager.alert("操作提示", "表格失败,请联系管理员!", "warning"); 
 } 
 });

需要绑定表格时调用AJAX方法,AJAX执行完后会自动调用显示数据方法,表格数据就显示出来了

第二种:直接在前台和JS设置好列名,自动绑定

前台代码:

<table id="dg" class="easyui-datagrid" title="需要显示表格标题 " data-options=" 
 rownumbers:true, 
 singleSelect:true, 
 autoRowHeight:false, 
 pagination:true, 
 "> 
 <thead> 
 <tr> 
 <th data-options="field:'colum1',align:'center'">列名1</th> 
 <th data-options="field:'colum2',align:'center'">列名2</th> 
 <th data-options="field:'colum3',align:'center'">列名3</th> 
 <th data-options="field:'colum4',align:'center'">列名4</th> 
 <th data-options="field:'colum5',align:'center'">列名5</th> 
 <th data-options="field:'colum6',align:'center'">列名6</th> 
 </tr> 
 </thead> 
 </table>

JS代码:

 $('#dg').datagrid({ 
 url: '路径?Name=' + Name + "&combox=" + combox, //设置访问后台路径和传递参数,如果没有参数可以删除 
 dataType: 'json', 
 width: "100%", //宽度 
 striped: true, //把行条纹化(奇偶行背景色不同) 
 idField: 'quesID', //标识字段 
 loadMsg: '正在加载用户的信息.......', //从远程站点加载数据是,显示的提示消息 
 pagination: true, //数据网格底部显示分页工具栏 
 singleSelect: false, //只允许选中一行 
 pageList: [10, 20, 30, 40, 50], //设置每页记录条数的列表 
 pageSize: 10, //初始化页面尺寸(默认分页大小) 
 pageNumber: 1, //初始化页面(默认显示第一页) 
 beforePageText: '第', //页数文本框前显示的汉字 
 afterPageText: '页 共 {pages} 页', 
 displayMsg: '第{from}到{to}条,共{total}条', 
 columns: [[ //每页具体内容 
 { field: 'colum1', title: '标题1', width: "13%", align: 'center', editor: 'text' }, 
 { field: 'colum2', title: '标题2', width: "13%", align: 'center', editor: 'text' }, 
 { field: 'colum3', title: '标题3', width: "13%", align: 'center', editor: 'text' }, 
 { field: 'colum4', title: '标题4', width: "13%", align: 'center', editor: 'text' }, 
 { field: 'colum5', title: '标题5', width: "13%", align: 'center', editor: 'text' }, 
 { field: 'colum6', title: ' 标题6 ', width: "13%", align: 'center', editor: 'text' }, 
 ]], 
 
 onLoadSuccess: function (data) { 
 
 //表格加载成功后执行的代码,如果不需要可以删除 
 } 
 })

把JS代码放在一个function函数中就可以了,函数执行时表格就可以绑定数据了

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在React中详细介绍受控组件与非受控组件

使用Angular如何实现基本购物车功能

在node.js中有关路由,中间件的详细介绍说明

在Vue中如何实现进入/离开动画

在webpack中详细解读入口函数run

下载本文
显示全文
专题