|
JavaScript实现GridView行交替与行选中颜色变化,缺点是加入分页和UpdatePanel后,点击下一页后,功能就消失了
<mce:script type="text/javascript"><!--//把事件放在onload里,//使用&lt;%=%>方式输出GridView的ID是因为某些情况下(如使用了MasterPage)会造成HTML中ID的变化//颜色值推荐使用Hex,如 #f00 或 #ff0000window.onload = function(){GridViewColor("<%=GridView1.ClientID%>", "#FFFFFF", "#FFFFFF", "#CCCCFF", "#CCCCCC");}//参数依次为(后两个如果指定为空值,则不会发生相应的事件)://GridView ID, 正常行背景色,交替行背景色,鼠标指向行背景色,鼠标点击后背景色function GridViewColor(GridViewId, NormalColor, AlterColor, HoverColor, SelectColor){//获取所有要控制的行var AllRows = document.getElementById(GridViewId).getElementsByTagName("tr");//设置每一行的背景色和事件,循环从1开始而非0,可以避开表头那一行for(var i=1; i<AllRows.length; i++){//设定本行默认的背景色AllRows[i].style.background = i%2==0?NormalColor:AlterColor;//如果指定了鼠标指向的背景色,则添加onmouseover/onmouseout事件//处于选中状态的行发生这两个事件时不改变颜色if(HoverColor != ""){AllRows[i].onmouseover = function(){if(!this.selected)this.style.background = HoverColor;}if(i%2 == 0){AllRows[i].onmouseout = function(){if(!this.selected)this.style.background = NormalColor;}}else{AllRows[i].onmouseout = function(){if(!this.selected)this.style.background = AlterColor;}}}//如果指定了鼠标点击的背景色,则添加onclick事件//在事件响应中修改被点击行的选中状态if(SelectColor != ""){AllRows[i].onclick = function(){this.style.background = this.style.background==SelectColor?HoverColor:SelectColor;this.selected = !this.selected;}}}}// --></mce:script> |
|