jeecg的
效果如下:
然后会发现冻结列固定在左侧,这确实是easyui原生的效果,现在先实现冻结列靠右侧固定:
网上有很多方式,其实只要添加样式如下即可:
效果如下:
然后会发现,序号和复选框和冻结列一起固定在右侧,具体原因可以直接看源码,就不做一一赘述。
现在解决,序号以及复选框的调整问题(即把序号和复选框不进行固定,并且移动到每行的最前面,这样才美观一点):
首先,去掉复选框,
field="ck",应该是easyui自定义的一个checkbox的,这样可以随便调整复选框的位置了(ps:在
其次,去掉序号显示。这个麻烦一点,主要是jeecg封装死了,默认rownumbers=“true”,而且为了不影响整个框架,单纯在源码里修改也不好,所以我们为
1.找到easyui.tld文件
找到datagrid标签
太长了,就不复制过来了,我们需要先新增一个属性rownumbers
rownumbers
true
是否显示序号
然后进入datagrid的标签处理类,DataGridTag
新增
private boolean rownumbers = true;// 是否显示序号
并且添加get/set方法:
public boolean isRownumbers() {
return rownumbers;
}
public void setRownumbers(boolean rownumbers) {
this.rownumbers = rownumbers;
}
因为我们的rownumbers属性默认是true了,所以源码中设置rownumbers:true的地方,可以酌情删除,避免影响。
1.1在方法jqGrid()中删除:
sb.append("rownumbers:true,");
并在后面添加:
if (rownumbers) {
sb.append("rownumbers:true,");
} else {
sb.append("rownumbers:false,");
}
1.2aceStyleTable()方法亦然
这样我们就可以简单的实现jeecg下datagrid的序号显示问题,其实就增加了一个属性控制true或false。
接下来就简单了
2.去除序号显示,在
3.增加序号显示
和复选框一个道理,只要在
formatterjs是自定义方法:
//为解决冻结列序号显示问题
function indexNum(value,row,index){
return index+1;
}
这样就可以随意选择序号的位置了
效果如下: