最近因公司需要,对easyui的动态列实现研究,并在网上查了不少的资料,但都不理想,结合自己的实践,简单介绍下实现过程;

需求特殊点在于:根据数据库的动态表结构,动态的加载datagrid表格,因数据库的表结构是变化的,用传统的加载方式无法实现列随表变化;正所谓难者不会,会者不难,而网上的相关资料比较少,经过大量的实验,最终实现了功能,而且关键代码却非常简单,如下所示:

<script type="text/javascript">

var dataGrid;

var $datagrid = {};


$datagrid.url = "${path }/******/dataGrid";


$datagrid.striped = true;

$datagrid.rownumbers = true;

$datagrid.pagination = true;

$datagrid.singleSelect = true;

$datagrid.idField = "id";

$datagrid.pageSize = 20;

$datagrid.pageList = [ 10, 20, 30, 40, 50 ];


//后台动态请求列信息

function findColumns() {

$.post('${path }/*******/viewColumns', {

}, function(data) {

var columns = new Array();

var arr = data;

$.each(arr, function (i, item) {

columns.push({ "field": arr[i].colname, "title": arr[i].colalias, "width": 100 });

});

$datagrid.columns = new Array(columns);

$('#dataGrid').datagrid($datagrid);

}, 'JSON');

}

</script>

通过以上方法,即可实现easyui的动态列展示,且页面带分页功能;