esay UI 之 dataGrid

Cannot read property 'length' of undefined

起因:做一个从后台读取数据到dataGrid 显示的功能,然后后台封装的json格式是{pagination:{},content:{}}。

然而esayUI并不能直接去content拿数据。

上面是esayUi源代码,可以看到他先去判断rows.length ,然后是通过rows[i]拿数据,我们的rows[i]哪里来?所以我们需要对从后台拿回来的数据装入rows。

在esayUI官方文档中有loadFilter这样的方法

loadFilter function Return the filtered data to display. The function take one parameter 'data' that indicate the original data. You can change original source data to standard data format. This function must return standard data object that contain 'total' and 'rows' properties.

Code example:

// removing 'd' object from asp.net web service json output

$('#dg').datagrid({

	loadFilter: function(data){

		if (data.d){

			return data.d;

		} else {

			return data;

		}

	}

});

 

他会把后台取回的数据(data),传递到方法中,并且返回处理后的数据,然后我们可以利用这个方法进行数据处理

1 loadFilter:function(data){

2           console.log(data);

3           var da = {};

4           da.rows = data.content; //rows赋值,关键

5           da.total = data.pagination.total; //分页时候需要、不做分页可以不写

6           return da;

7         },

以上是我处理数据的代码

 

更多解决方法,希望你们给建议

 

你可能感兴趣的:(datagrid)