/**
* 获得表格的head和val
* @param grid
* @returns {___anonymous51675_51790}
*/
function getGridHeadAndValInfo(grid) {
var headInfo = "";
var valInfo = "";
var gridOptions = grid.datagrid("options");
//活动列标题有几行(活动列标题和冻结列标题行数一致)
var rowNum = gridOptions.columns.length;
var fColRowNum = gridOptions.frozenColumns.length;
var fCol_index = -1;
var fCol_max_index = 0;//记录冻结列每行共有多少列
/*获取冻结的列*/
if (fColRowNum > 0 && fColRowNum == rowNum) {
var arr_frozenColumn = gridOptions.frozenColumns;
for (var i = 0; i < rowNum; i++) {
var fCol_num = 0;
var ele_frozenColumn = arr_frozenColumn[i];
var fColColNum = ele_frozenColumn.length;
for (var j = 0; j < fColColNum; j++) {
var fColumnOption = grid.datagrid("getColumnOption", ele_frozenColumn[j].field);
//不输出的列不导出
if (!isEmpty(fColumnOption.output) && !fColumnOption.output) {
continue;
}
//隐藏的列不导出
if (!isEmpty(fColumnOption.hidden) && fColumnOption.hidden) {
continue;
}
//子表扩展列不输出
if ("_expander" == fColumnOption.field){
continue;
}
//拼接行起止数
var start_row_i, end_row_i, start_cell_i, end_cell_i;
if (isEmpty(ele_frozenColumn[j].rowspan)) {//单行
start_row_i = i;
end_row_i = i;
//记录非第一行且有合并列行的开始列下标
if (undefined != ele_frozenColumn[j].colspan && fCol_index == -1) {
fCol_index = fCol_num;
}
} else {//多行
start_row_i = i;
end_row_i = i + ele_frozenColumn[j].rowspan - 1;
}
//拼接列起止数
if (fColColNum < fCol_max_index) { //第二行起,列的起始值可能不为0
if (isEmpty(ele_frozenColumn[j].colspan)) {//单列
start_cell_i = fCol_index + fCol_num;
end_cell_i = fCol_index + fCol_num;
fCol_num++;
} else {//多列
start_cell_i = fCol_index + fCol_num;
end_cell_i = fCol_index + fCol_num + ele_frozenColumn[j].colspan - 1;
fCol_num += ele_frozenColumn[j].colspan;
}
} else {
if (isEmpty(ele_frozenColumn[j].colspan)) {//单列
start_cell_i = fCol_num;
end_cell_i = fCol_num;
fCol_num++;
} else {//多列
start_cell_i = fCol_num;
end_cell_i = fCol_num + ele_frozenColumn[j].colspan - 1;
fCol_num += ele_frozenColumn[j].colspan;
}
}
//加入属性列,要导出的值列
if(!isEmpty(fColumnOption.field)){
valInfo += ";" + fColumnOption.field;
}
headInfo += ";" + fColumnOption.title.replace(/<.*?>/ig, "") + "," + start_row_i + "," + start_cell_i + "," + end_row_i + "," + end_cell_i;
}
if (i == 0) {
//记录冻结列的最后列下标,所有冻结行的最后列数是一致的,故取第一行的列数即可
fCol_max_index = fCol_num;
}
}
}
/*获取活动列*/
var arr_column = gridOptions.columns;
var col_max_index = 0;//每行有多少列
var col_index = -1;
for(var i = 0; i < rowNum; i++){
var column_num = fCol_max_index;//活动列的起始列
var ele_column = arr_column[i];
var colColNum = ele_column.length;
for (var j = 0; j < colColNum; j++) {
var columnOption = grid.datagrid("getColumnOption", ele_column[j].field);
//不输出的列不导出
if(!isEmpty(columnOption.output) && !columnOption.output){
continue;
}
//隐藏的列不导出
if(!isEmpty(columnOption.hidden) && columnOption.hidden){
continue;
}
//子表扩展列不输出
if ("_expander" == columnOption.field){
continue;
}
var start_row_i, end_row_i, start_cell_i, end_cell_i;
//拼接行起止数
if(isEmpty(ele_column[j].rowspan)){//单行
start_row_i = i;
end_row_i = i;
//记录非第一行且有合并列行的开始列下标
if(undefined != ele_column[j].colspan && col_index == -1){
col_index = column_num - fCol_max_index;
}
}else {//多行
start_row_i = i;
end_row_i = i + ele_column[j].rowspan - 1;
}
//拼接列起止数
if(colColNum < col_max_index){//说明起始列不是从头开始
if(isEmpty(ele_column[j].colspan)){
start_cell_i = column_num + col_index;
end_cell_i = column_num + col_index;
column_num ++;
}else {
start_cell_i = column_num + col_index;
end_cell_i = column_num + col_index + ele_column[j].colspan - 1;
column_num += ele_column[j].colspan;
}
}else {//说明起始列从头开始,并且不会有合并列
if(isEmpty(ele_column[j].colspan)){
start_cell_i = column_num;
end_cell_i = column_num;
column_num ++;
}else {
start_cell_i = column_num;
end_cell_i = column_num + ele_column[j].colspan - 1;
column_num += ele_column[j].colspan;
}
}
//加入属性列,要导出的值列
if(!isEmpty(columnOption.field)){
valInfo += ";" + columnOption.field;
}
headInfo += ";" + columnOption.title.replace(/<.*?>/ig, "") + "," + start_row_i + "," + start_cell_i + "," + end_row_i + "," + end_cell_i;
}
if(i == 0){//记录活动列的总列数
col_max_index = column_num - fCol_max_index;
}
}
return {
headInfo: headInfo.substring(1, headInfo.length),
valInfo: valInfo.substring(1, valInfo.length)
};
}
/**
* 判断参数是否为空
* @param val 要判断的参数
* @returns 为空为true,不为空为false
*/
function isEmpty(val){
if(typeof val == "undefined"){
return true;
}
if(typeof val== "string" && val.constructor == String){
if("" == val){
return true;
}else{
return false;
}
}
if(isArray(val)){
if(val.length <= 0){
return true
}
}
if(null == val){
return true;
}
return false;
}
/**
* 判断参数是否为数组
* @param obj
*/
function isArray(obj){
return Object.prototype.toString.call(obj)=='[object Array]';
}
相关推荐
DataGrid表头合并和单元格内容合并-升级版
UI设计在一个系统中的重要性是不容忽视的,我们开发人员要做到:让用户去控制...给你的Easyui-DataGrid 表头添加一点料吧 Easyui-Datagrid—表头灵活显示http://blog.csdn.net/u010293698/article/details/47956865
文件主要是关于easyui的动态表头,代码主要是js部分,
http://blog.csdn.net/tianxiawudi0720/article/details/47401399
EasyUI指定列-合并相同数据行
datagrid 4种解决方案 表头与列对齐
easyUI中datagrid鼠标悬浮显示图片,博客地址:https://blog.csdn.net/lwf3115841/article/details/119531658?spm=1001.2014.3001.5501
固定表头的DataGrid
前台使用Jquery EasyUI 插件datagrid实现多表头动态生成的功能
datagrid添加tooltip及超出宽度添加省略号
easyui textbox失去焦点事件及获取文本框的内容easyui textbox失去焦点事件及获取文本框的内容easyui textbox失去焦点事件及获取文本框的内容
easyui tab 绝对好用的tab插件
EasyUI DataGrid过滤用法实例
解决EasyUIdataGrid列比较多,无数据,列展现不全
下面小编就为大家带来一篇jquery获取easyui日期控件的值实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JQuery EasyUI DataGrid服务端分页加载数据后,DataGrid行号不能延续,总是重新由1开始。因为服务端分页取回的是单页数据,通过LoadData方法加载数据后,pageNumber属性被初始化为1,因此行号总是重新由1开始。现在...
easyUI datagrid合并单元格的两种方法 都实现了按照子对象的属性合并单元格的需求 调用方式也很简单调用方式: $(tableID).datagrid("autoUnrelatedMergeCells", ["role.name", "num"]);
easyUI拓展:获取当前datagrid中在编辑状态的行编号列表,直接使用即可
一个update扩展方法 文档中一种是比较笨的方法 一次只能修改一个列而且受列编辑类型影响(比如number datetime)扩展一次编辑多列,不受编辑类型影响,没有编辑属性也可以。
NULL 博文链接:https://cqh520llr.iteye.com/blog/1956791