Extjs 3.4 同值合并
摘自:http://www.cnblogs.com/kunpengit/archive/2012/11/13/2768239.html
/**
* grid gridPanel 需要合并的表格
* rowOrCol 合并行还是列 需要合并的列(dateIndex)
*borderStyle 样式
**/
function gridSpan(grid, rowOrCol,colName, borderStyle) {
var array1 = new Array();
var count1 = 0;
var count2 = 0;
var index1 = 0;
var index2 = 0;
var aRow = undefined;
var preValue = undefined;
var firstSameCell = 0;
var allRecs = grid.getStore().getRange();
if (rowOrCol == "row") {
count1 = grid.getColumnModel().getColumnCount();
count2 = grid.getStore().getCount();
} else {
count1 = grid.getStore().getCount();
count2 = grid.getColumnModel().getColumnCount();
}
count1 = 2; // 对第二列合并
for (i = 1; i < count1; i++) {
preValue = undefined;
firstSameCell = 0;
array1[i] = new Array();
for (j = 0; j < count2; j++) {
if (rowOrCol == "row") {
index1 = j;
index2 = i;
} else {
index1 = i;
index2 = j;
}
if (allRecs[index1].get(colName) == preValue) {
allRecs[index1].set(colName, " ");
array1[i].push(j);
//alert(i + "\r\n"+j);
if (j == count2 - 1) {
var index = firstSameCell + Math.round((j + 1 - firstSameCell) / 2 - 1);
if (rowOrCol == "row") {
allRecs[index].set(colName, preValue);
} else {
allRecs[index1].set(grid.getColumnModel().getColumnId(index), preValue);
}
}
} else {
if (j != 0) {
var index = firstSameCell + Math.round((j + 1 - firstSameCell) / 2 - 1);
if (rowOrCol == "row") {
allRecs[index].set(colName, preValue);
} else {
allRecs[index1].set(grid.getColumnModel().getColumnId(index), preValue);
}
}
firstSameCell = j;
preValue = allRecs[index1].get(colName);
allRecs[index1].set(colName, " ");
if (j == count2 - 1) {
allRecs[index1].set(colName, preValue);
}
}
}
}
grid.getStore().commitChanges();//添加所有分隔线
for (i = 0; i < grid.getStore().getCount(); i++) {
for (j = 0; j < grid.getColumnModel().getColumnCount(); j++) {
aRow = grid.getView().getCell(i, j);
aRow.style.borderTop = borderStyle;
aRow.style.borderLeft = borderStyle;
}
}//去除合并的单元格的分隔线
for (i = 1; i < array1.length; i++) {
for (j = 0; j < array1[i].length; j++) { if (rowOrCol == "row") {
aRow = grid.getView().getCell(array1[i][j], i);
aRow.style.borderTop = 'none';
} else {
aRow = grid.getView().getCell(i, array1[i][j]);
aRow.style.borderLeft = "none";
}
}
}
}; //在执行load的时候加载
ds_Custom.on('load',function(){
gridSpan(gpCustom, 'row',"cname", '1px solid #DDDDDD');
});
/*与表头对齐*/
.x-grid3-row td,.x-grid3-summary-row td {
padding-right: 0px;
padding-left: 0px;
padding-top: 0px;
padding-bottom: 0px;
}
注:如果合并的行不想显示网格的话,请在网页的css里面加上 下面的样式参数
/*去掉行间空白*/
.x-grid3-row {
border-right-width: 1px;
border-left-width: 1px;
border-top-width: 1px;
border-bottom-width: 1px;
}
Extjs 3.4 同值合并的更多相关文章
- php 按列值合并数据
/* * PHP按值合并数组 * */ function my_array_merge(&$array1, &$array2) { $result = Array(); foreach ...
- PHP按值合并数组
/** * PHP按值合并数组 * */ function my_array_merge(&$array1, &$array2) { $result = Array(); foreac ...
- php将一个二维数组按照某个字段值合并成一维数组,如果有重复则将重复的合并成二维数组
版权声明:本文为博主原创文章,未经博主允许不得转载. 最近工作中碰到一个问题,用PHP将一个二维数组按照二维数组中的各个项中的某个特定字段值合并成一维数组,如果有重复则将重复的合并成二维数组,生成的二 ...
- EasyExcel导出小结:动态标题、标题格式、相同值合并
1. 实列相关依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel& ...
- SQL SERVER 2008 字段值合并
/** * 通过 FOR XML PATH 语句,可以将字段的值进行合并. **/ CREATE TABLE tb_child ( name ), hobby ) ) go INSERT INTO t ...
- Extjs combobox设置默认值
转载:http://www.54mask.com/extjs-combobox-default-value.html 相信很多人都遇到了在ExtJS框架中设置combo组件默认值的需求,ExtJS框架 ...
- JavaScript中Object值合并方法
原文:https://www.cnblogs.com/fullstack-yang/p/8085206.html ------------------------------------ 前言:在日常 ...
- PHP——数组根据某一键值合并
前言 其实要实现很简单直接foreach,再根据PHP中数组的特性就可以轻松实现. 步骤 这是源数据的格式 $info = [ [ "gname" => "特别关心 ...
- java.util.Map按照key值合并的value的Collection 集合中。
用java实现把多个map的内容合并的一个resultMap中 代码大致如下 /** * @author Shalf */ public class MapUtil { /** * 把partMa ...
随机推荐
- 【BZOJ】3991: [SDOI2015]寻宝游戏
题意 给一个\(n\)个点带边权的树.有\(m\)次操作,每一次操作一个点\(x\),如果\(x\)已经出现,则\(x\)消失.否则\(x\)出现.每一操作后,询问从某个点开始走,直到经过所有出现的点 ...
- AJAX实现跨域的三种方法
由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问. 比如说你的网站域名是aaa.com,想要通过AJAX请 ...
- c++聪聪看书(低数据版代码)
聪聪是一个善良可爱.睿智聪慧的好孩子.聪聪喜欢看书,这一天她在看一本书时看到了这样一个问题:给你一个正整数n,你要将它分成若干个自然数Ai的和的形式,并且使得这若干个自然数Ai的乘积尽量大,并输出最大 ...
- html中meta的设置
meta设置 <meta name="viewport" content="width=device-width, initial-scale=1.0, user- ...
- 高仿中国银行ATM系统
温馨提示由于代码太多只是上传了ATM客户端部分,管理员和超级管理员还有数据库部分上传了工程包,可以直接点击https://i.cnblogs.com/Files.aspx去里面找.package At ...
- 提高Baidu Map聚合的效率
百度的MAP的例子里提供了一个聚合效果,地址是http://developer.baidu.com/map/jsdemo.htm#c1_4 ,效果图如下图: 这个效果很赞,但效率很低,当数据量达到50 ...
- js,css小知识点记录
JS手册中提到:可以使用任意表达式作比较表达式.任何值为0.null.未定义或空字符串的表达式被解释为 false.其他任意值的表达式解释为 true.也就是说,这里会隐式的转换为布尔值. ...
- 如何给main传参数
main 函数的参数有连个argc argcv[] argc 是参数个数 argcv是参数的数组指针,且argcv的第一个参数是默认程序路径加程序名 给main传参数,需要在命令行启动程序时设置 如 ...
- VMware安装chrome os遇到选择网络问题.
在下载下来的vmx文件中添加一行ethernet0.virtualDev = "e1000" 就可以了.参考网站http://communities.vmware.com/thre ...
- Emmet使用
emmet官方文档 [翻译]Emmet (ZenCoding) 缩写语法 <!-- ul>li.item$*5 --> <ul> <li class="i ...