`
QuarterLifeForJava
  • 浏览: 176291 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

简单解决表格重排序后行颜色丢失问题

阅读更多
问题描述:后台拿到JSON数据后,调用共通组件输出数据,并对不同情况拼接输出形式,部分代码如下:
				for(var i=0;i<first;i++){
					var id = $('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(i).find('td').eq(16).find('div').html();
					$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(i).find('td').eq(15).html("<div unselectable='on' class='j-grid-cell-inner' style='text-align:center;' title=''>未审批</div>");
					$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(i).find('td').attr('style','background: gold');
					//obj[id] = 'gold';
				}
				for(var i=0;i<second;i++){
					var id = $('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(first+i).find('td').eq(16).find('div').html();
					$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(first+i).find('td').eq(15).html("<div unselectable='on' class='j-grid-cell-inner' style='text-align:center;' title=''><a href='../html/overtimeStatus.html?id="+id+"&status=0'>修改</a>/<a href='#'>取消</a></div>");
					$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(first+i).find('td').attr('style','background: pink');
					//obj[id] = 'pink0';
				}
				for(var i=0;i<third;i++){
					var id = $('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(first+second+i).find('td').eq(16).find('div').html();
					$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(first+second+i).find('td').eq(15).html("<div unselectable='on' class='j-grid-cell-inner' style='text-align:center;' title=''><a href='../html/overtimeStatus.html?id="+id+"&status=1'>修改</a>/<a href='#'>取消</a></div>");
					$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(first+second+i).find('td').attr('style','background: pink');
					//obj[id] = 'pink1';
				}
				for(var i=0;i<forth;i++){
					var id = $('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(first+second+third+i).find('td').eq(16).find('div').html();
					$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(first+second+third+i).find('td').eq(15).html("<div unselectable='on' class='j-grid-cell-inner' style='text-align:center;' title=''>实施已确认</div>");
					$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(first+second+third+i).find('td').attr('style','background: lawngreen');
					//obj[id] = 'lawngreen';
				}

式样如下:

其中我在'当前状态'列后面还隐藏了一列,是ID,ID唯一!!!
问题是:当我点击'开始时间'、'当前状态'等头部排序后,不光颜色消退,‘当前状态’拼接的‘未审批’、‘修改/取消’也会一并消失,而且不能改共通组件(PS:我也不会改,两三千行,我又不怎么懂JS。。。),那么只能记录ID然后分别判断着色、拼接,具体怎么做,请看下面:
注:上面的所有操作都在点击事件触发前就完成了,即来自body的onload的init方法
1、定义一个对象
var obj = {};//应定义为全局变量
将ID作为key值,颜色作为value值,就是我上面注释掉的写法
2、触发click事件后首先将重排好后的ID放入数组中去
var context;
context = new Array();
		for(var i=0;i<total;i++){
			var id = $('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(i).find('td').eq(16).find('div').html();
			context.push(id);
		}

3、遍历重排后的ID数组,进行比较匹配和重新着色等一些列操作
①遍历重排后的ID数组
for(var j=0;j<context.length;j++){  }

②得到排序好后的ID在数组中的位置
var posion = $.inArray(context[j],context);

③将数组中的ID作为obj对象的key值找到对应的value值
if(obj[context[j]]=='gold'){
				$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(posion).find('td').eq(15).html("<div unselectable='on' class='j-grid-cell-inner' style='text-align:center;' title=''>未审批</div>");
				$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(posion).find('td').attr('style','background: gold');
			}else if(obj[context[j]]=='lawngreen'){
				$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(posion).find('td').eq(15).html("<div unselectable='on' class='j-grid-cell-inner' style='text-align:center;' title=''>实施已确认</div>");
				$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(posion).find('td').attr('style','background: lawngreen');
			}else if(obj[context[j]]=='pink0'){
				$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(posion).find('td').eq(15).html("<div unselectable='on' class='j-grid-cell-inner' style='text-align:center;' title=''><a href='../html/overtimeStatus.html?id="+context[j]+"&status=0'>修改</a>/<a href='#'>取消</a></div>");
				$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(posion).find('td').attr('style','background: pink');
			}else if(obj[context[j]]=='pink1'){
				$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(posion).find('td').eq(15).html("<div unselectable='on' class='j-grid-cell-inner' style='text-align:center;' title=''><a href='../html/overtimeStatus.html?id="+context[j]+"&status=1'>修改</a>/<a href='#'>取消</a></div>");
				$('#overtimeImplementListTable').find('tbody').eq(1).find('tr').eq(posion).find('td').attr('style','background: pink');
			};

4、最后在3-1的for循环结束后清空数组
		//清空数组
		//obj = {};//对象不需要清空!
		context.length = 0;

最后,其原理其实很简单,如下:
var x = {};
x[1] = '黑';
x[3] = '白';
x[2] = '黑';
//var x = {1:'黑',3:'白',2:'黑'};
var newX;
newX.push(3);
newX.push(1);
newX.push(2);
//newX = [3,1,2];
for(var i=0;i<newX.length;i++){
$.inArray(newX[i],newX)//找到指定值在数组中的位置
	alert(newX[i]+"="+x[newX[i]]);//3=白;1=黑;2=白
}

所采用的方法很简单初级,必定有更好的解决办法,小弟经验不足、知识狭隘,如果有好的建议或不同建议,定当虚心请教,认真学习
  • 大小: 19.4 KB
分享到:
评论

相关推荐

    百度编辑器UEditor JSP版 v1.3.5.rar

    修复表格新增行后宽度丢失问题 修复表格底纹和表格排序多语言配置遗漏 解决右键,粘贴,对话框内容报错 修复设置单元格颜色问题 优化大字号下的显示问题 解决IE下表格粘贴失效问题 修复选中内容设置成代码,出现多余...

    DELPHI 表格控件DBGridEh史上最全使用资料(101页)

    10) 修正DBGrideh 丢失焦点时自动关闭输入法的问题......................................35 11) DBGRIDEH选定多行删除怎么实现...............................................................36 12) DBGrid ...

    易语言程序免安装版下载

    修改高级表格支持库,解决插入行/插入列在未指定行号/列号的情况下插入位置不正确的BUG。 7. 修改文本语音转换支持库,增加“机读文本.重新创建并初始化()”方法。 8. 修改应用接口支持库,增强“取快捷方式目标...

    asp.net知识库

    遭遇 ASP.NET 2.0 只读 TextBox 回发后信息丢失的 bug asp.net2.0:扩展ImageButton控件定制自己需要的功能 ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充) ASP.NET2.0中themes、Skins轻松实现网站换肤! ...

    天正建筑 TS4.5

    3.[消除重线]改错:由于核心函数的排序程序对表长度的限制,当一组同线数量多到一定值时,就会出现ACAD崩溃的情况。本次修改将这个数量值增加将近一倍(因为这个数量已到达该算法的极限)。 4.[单词缩放][单词旋转]...

    sql2000 Log Explorer4.2(含注册码)+汉化

    你可以浏览日志、导出数据、恢复被修改或者删除的数据(包括执行过update,delete,drop和truncate语句的表格)。一旦由于系统故障或者人为因素导致数据丢失,它能够提供在线快速的数据恢复,最大程度上保证恢复期间的...

    Excel数据分析与图表应用案例精粹_光盘

     2.2.3 按行排序 28  2.2.4 多列排序 29  2.2.5 自定义排序次序 30  2.2.6 按单元格颜色进行排序 32  第3章 图表基本操作 34  3.1 常用图表创建 34  3.1.1 创建柱形图 34  3.1.2 创建饼形图 36  3.1.3 创建...

    PDF Office Max 6 优秀的PDF编辑工具

    •简单的转换图像(s)或PDF到文本 •具有惊人准确性的新一代OCR •在设备上完成处理,100%私有 转换pdf到Word .docx完全可编辑的文件 转换包括: •文本格式和属性 •注释和亮点 •图纸 •图像 •表格和更多...

    Thinking in Java 中文第四版+习题答案

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 ...

    Think in Java(中文版)chm格式

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的...

    JAVA_Thinking in Java

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1...

    Java初学者入门教学

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1...

    ThinkInJava

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1...

    java 编程入门思考

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1...

    thinkinjava

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1...

    Thinking in Java简体中文(全)

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1...

    java联想(中文)

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1...

    Thinking in Java(中文版 由yyc,spirit整理).chm

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1...

    会计理论考试题

    1.计算机感染病毒后会产生各种现象,以下不属于病毒现象的是__D__。 A、文件占用的空间变大 B、发生异常蜂鸣声 C、屏幕显示异常图形 D、机内的电扇不转 2. Windows98支持下面___C__网络协议。 A、Net BEUI B、IPX...

Global site tag (gtag.js) - Google Analytics