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"; } } });