关于MINIUI的datagrid的空值列排序问题处理

首先这种东西miniui的官网上大多数都是有的,只是找有些麻烦,想深入了解请点击你点我试试!

这段时间的项目使用到了miniui加echarts做前台显示,而在做datagrid的表单时,同事遇到一个小bug,就是当点击操作一栏的排序按钮时,整个页面数据就会消失,图例:

关于MINIUI的datagrid的空值列排序问题处理

当点击操作一栏时:

关于MINIUI的datagrid的空值列排序问题处理

问题解析:

由于操作一栏是前台生成的,后台并无值传递,所以排序效果是无效的。

解决方法:

1,从后台传值,miniui根据"操作"列的field属性自动进行排序。

2,设置"操作"列的sortField属性为指定主键,举个栗子,操作列的排序完全没有意义,我们可以通过设置sortField="(任务ID)"来进行排序(miniuidatagrid是根据sortfieid来进行排序,如果没有则按默认的field排序)。代码如下:

<div field="cmdid"   allowSort="true"  width="120" align="center" headerAlign="center">任务ID</div>

<div field="taskid" allowSort="true" width="120" align="center" headerAlign="center" renderer="operationRenderer" sortField="cmdid">操作</div>

3,还有一种不算方法的方法,直接禁用这种没有用的排序列,只需将allowSort的属性改成flase。代码如下:

<div field="taskid" allowSort="true" width="120" align="center" headerAlign="center" renderer="operationRenderer" sortField="cmdid">操作</div>

结尾:查找问题的时候,遇到服务器排序和客户端排序的选择问题,个人偏向客户端排序,毕竟服务器端处理的东西已经够多了,这种排序问题还是交给客户端来处理好了。

附送传送门:
miniui服务端排序:http://www.miniui.com/demo/#src=datagrid/sorting.html
miniui客户端排序:http://www.miniui.com/demo/#src=datagrid/sorting_client.html