解决jeecg框架datagrid页面冻结列问题(序号、复选框调整)

jeecg的已经封装了easyui的冻结属性,直接添加frozenColumn="true"即可。

效果如下:

解决jeecg框架datagrid页面冻结列问题(序号、复选框调整)_第1张图片

 

 然后会发现冻结列固定在左侧,这确实是easyui原生的效果,现在先实现冻结列靠右侧固定:

网上有很多方式,其实只要添加样式如下即可:

效果如下:

解决jeecg框架datagrid页面冻结列问题(序号、复选框调整)_第2张图片

然后会发现,序号和复选框和冻结列一起固定在右侧,具体原因可以直接看源码,就不做一一赘述。

现在解决,序号以及复选框的调整问题(即把序号和复选框不进行固定,并且移动到每行的最前面,这样才美观一点)

首先,去掉复选框,里有个属性checkbox,设置为false,即可。这样jeecg不会在datagrid初始化的时候给我们加上一个复选框,去掉以后,我们自己再细致化调整,实现也很简单,直接新建一个

field="ck",应该是easyui自定义的一个checkbox的,这样可以随便调整复选框的位置了(ps:在里面的singleSelect属性里可以设置单选多选哦!)

 

其次,去掉序号显示。这个麻烦一点,主要是jeecg封装死了,默认rownumbers=“true”,而且为了不影响整个框架,单纯在源码里修改也不好,所以我们为标签扩充一个rownumbers属性,这样就可以自定义是否显示序号了。

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.去除序号显示,在标签的属性rownumbers中设置为false,不显示序号

3.增加序号显示

和复选框一个道理,只要在标签新增一个

formatterjs是自定义方法:

//为解决冻结列序号显示问题
function indexNum(value,row,index){
	return index+1;
}

这样就可以随意选择序号的位置了

效果如下:

解决jeecg框架datagrid页面冻结列问题(序号、复选框调整)_第3张图片

你可能感兴趣的:(jeecg)