Ext点击报表行变色

Ext点击报表行变色

Ext点击表格行变色
直接上代码

	grid.on("rowclick", function(a, b, c) {

			//先把所有行的背景色清除掉
			for(var i=0;i<grid.getView().getRows().length;i++){
				grid.getView().getRow(i).style.backgroundColor='';
			}
			grid.getView().getRow(b).style.backgroundColor='#b8cfee';
	});


说明:给创建好的表格对象grid设置rowclick事件。
设置背景色之前要清除掉所有行的背景色,如果不作这个处理,设置的行颜色不会自动清掉
以上方法经测试有点问题,点击后不能马上变色,要鼠标移开该行后才可以变色。

在网上搜到以下方法:
	grid.on("rowclick", function(grid,rowIndex,event) {
		//适用情况:单选的非树表表格
		if ((grid.ShowCheckBox !="显示") && (grid.getXType()=='editorgrid')) {
			var xdynode = event.target;  
	        while(xdynode.tagName != 'TR'){  
	             xdynode = xdynode.parentNode;  
	             if(xdynode == null || xdynode.tagName == 'TR'){  
	                 break;  
	             }  
	         }  
	         if (xdynode != null && xdynode != undefined){
	         	 var elDiv = xdynode.parentNode.parentNode.parentNode.parentNode;   
			     for(var i = 0; i<elDiv.childNodes.length;i++){  
			         elDiv.childNodes[i].childNodes[0].childNodes[0].childNodes[0].style.cssText="background-color:";  
			     }  
			     xdynode.style.cssText="background-color:#b8cfee";
	         } 
		}
	});