js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色


Posted in Javascript onMay 27, 2010

后台代码

/// <summary> 
/// 数据行绑定事件 
/// </summary> 
/// <param name="sender"></param> 
/// <param name="e"></param> 
protected void gvProduct_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
try 
{ 
if (e.Row.RowType == DataControlRowType.DataRow ) 
{ 
GridViewRow row = e.Row; 
CheckBox ckb = row.Cells[0].FindControl("ckb") as CheckBox; 
Label ProductID = row.Cells[0].FindControl("lblProductID") as Label; 
//当鼠标停留时更改背景色 
row.Attributes.Add("onmouseover", "this.style.backgroundColor='#00A9FF'"); 
//当鼠标移开时还原背景色 
row.Attributes.Add("onmouseout", "gvProducts_onmouseout('" + gvProducts.ClientID + "','" + ckb.ClientID + "',this) "); 
//当鼠标移开时还原背景色 
row.Attributes.Add("onclick", "SelectRadio('" + gvProducts.ClientID + "','" + ckb.ClientID + "','" + ProductID.Text + "',this) "); 
ckb.Attributes.Add("onclick", "SelectRadio('" + gvProducts.ClientID + "','" + ckb.ClientID + "','" + ProductID.Text + "',document.getElementById('" + row.ClientID + "')) "); 
} 
catch (Exception ex) 
{ 
} 
}

前台代码
/****************************************************/ 
//功能:鼠标移出时设置行颜色 
//说明:onmouseout事件时使用 
//作者:XXXXX 
//日期:2010年5月26日 
/****************************************************/ 
function gvUsers_onmouseout(listId, SelectRadioID, row) { 
var SelectRadio = document.getElementById(SelectRadioID); 
//找到控制范围 
var GridViewtableSearchList = document.getElementById(listId); 
//找到控制范围下所有input 
var objs = GridViewtableSearchList.getElementsByTagName("input"); 
//找到控制范围下所有checkbox并都变为false 
for (var i = 0; i < objs.length; i++) { 
if (objs[i].type.toLowerCase() == "checkbox" && objs[i] == SelectRadio) { 
if (SelectRadio.checked) { 
//设置选中行的颜色 
row.style.backgroundColor = '#33A922' 
} 
else { 
//设置交替行的颜色 
if (i % 2 == 0) { 
row.style.backgroundColor = '#FFFFFF' 
} 
else { 
row.style.backgroundColor = '#F4FAFD' 
} 
} 
} 
} 
} 
/****************************************************/ 
//功能:鼠标单击时使用 
//说明:onmouseout事件时使用 
//作者:XXXXXX 
//日期:2010年5月26日 
/****************************************************/ 
function SelectRadio(listId, SelectRadioID, rv, row) { 
var SelectRadio = document.getElementById(SelectRadioID); 
//找到控制范围 
var GridViewtableSearchList = document.getElementById(listId); 
//找到控制范围下所有input 
var objs = GridViewtableSearchList.getElementsByTagName("input"); 
//找到控制范围下所有checkbox并都变为false 
for (var i = 0; i < objs.length; i++) { 
//设置除当前选择行外其它行的背景色 
if (objs[i].type.toLowerCase() == "checkbox" && objs[i] != SelectRadio) { 
objs[i].checked = false; 
//设置交替行的背景色 
if (i % 2 == 0) { 
objs[i].parentElement.parentElement.style.backgroundColor = '#FFFFFF' 
} 
else { 
objs[i].parentElement.parentElement.style.backgroundColor = '#F4FAFD' 
} 
} 
} 
var SelectRadioSelectRadioID = SelectRadio.id; 
SelectRadio.checked = !SelectRadio.checked 
//设置当前选择行的背景色和返回选择行的主键 
if (SelectRadio.checked) { 
row.style.backgroundColor = '#33A922' 
window.returnValue = rv; 
} 
else { 
window.returnValue = "" 
} 
}
Javascript 相关文章推荐
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
Dec 28 Javascript
js汉字转拼音实现代码
Feb 06 Javascript
node.js中的fs.linkSync方法使用说明
Dec 15 Javascript
JavaScript学习笔记之定时器
Jan 22 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
Dec 24 Javascript
创建你的第一个AngularJS应用的方法
Jun 16 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
Jan 22 Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
Apr 13 Javascript
JS图片预加载插件详解
Jun 21 Javascript
浅谈Express异步进化史
Sep 09 Javascript
详解js 创建对象的几种方法
Mar 08 Javascript
Javascript 设计模式(二) 闭包
May 26 #Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
May 26 #Javascript
js escape,unescape解决中文乱码问题的方法
May 26 #Javascript
javascript 异步页面查询实现代码(asp.net)
May 26 #Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
May 26 #Javascript
jquery的$(document).ready()和onload的加载顺序
May 26 #Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
May 26 #Javascript
You might like
初探PHP5
2006/10/09 PHP
解析php类的注册与自动加载
2013/07/05 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
php根据年月获取季度的方法
2014/03/31 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
jquery 无限级联菜单案例分享
2013/03/26 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
Python 专题四 文件基础知识
2017/03/20 Python
Python 闭包的使用方法
2017/09/07 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
大学生实习证明范本
2014/01/15 职场文书
家长会主持词开场白
2014/03/18 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
团组织关系介绍信
2019/06/24 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
分享python函数常见关键字
2022/04/26 Python
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python