1.datagrid排序
如何设置datagrid参数支持列排序,请查看 相关文章,这里不做过多介绍。
我使用的方式是在需要排序的字段上加上sortable=“true”
<th field="ftotal" width="50" sortable="true">总计</th>
这样当点击列头进行排序时,后台就会传递参数:
然后后台接收参数,拼接到sql语句中执行就可以了。
我遇到的问题时,数据库持久层使用的是mybatis,数据库字段使用了下划线命名方式,例如user_name,create_date等,为了在代码里面便于阅读,使用了骆驼峰的命名方式,当然这个操作是mybatis_genetator完成的。那么datagrid显示的时候,就是这样的
<th field="userName" width="50" sortable="true">用户名</th>
<th field="createDate" width="50" sortable="true">创建时间</th>
点击列名排序时,传递的参数就变成了,userName、createDate,显然与数据库里面的字段不一致。
思路一:
使用Java代码将骆驼峰的字段变为下划线命名方式,如果字段映射规则很标准,很准确。例如:userName=>user_name,但是mybatis生成实体是允许使用columnOverride将数据库字段映射成各种名字,所以这种方法不可行。
思路二:
mybatis逆向工程生成的Mapper.xml文件里面有resultMap来处理字段映射的问题,那么我们只需要读取这个xml文件,根据property找到column。读取xml是一件很辛苦的事情,所以我也不想这么做。
思路三:
既然映射完以后,操作变得这么麻烦,干脆不映射。最终我采用的也是这种方式。只需要在mybatis_generator配置文件里面配置就行了。
这样配置完以后,生成的实体就会使用真实的字段名。当然现在仍然可以使用columnOverride进行字段映射。
<table tableName="" domainObjectName="">
<property name="useActualColumnNames" value="true"/>
</table>
2.填充表单时datebox不显示数据的问题
3.datagrid设置了fitColumns=“true"仍然显示横向滚动条
查看是否使用了重复的列字段
4.tree仅叶子节点可以点击
需要同时设置checkbox:true,onlyLeafCheck: true。仅设置onlyLeafCheck: true,无效!