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函数中就可以了,函数执行时表格就可以绑定数据了

以上是 EasyUI的DataGrid绑定Json数据源的示例代码 的全部内容, 来源链接: utcz.com/z/313543.html

回到顶部