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 相关文章推荐
(JS实现)MapBar中坐标的加密和解密的脚本
May 16 Javascript
javascript 程序库的比较(一)之DOM功能
Apr 07 Javascript
jQuery+ajax中getJSON() 用法实例
Dec 22 Javascript
浅谈被jQuery抛弃的函数及替代函数
May 03 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
给angular加上动画效遇到的问题总结
Feb 17 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
Mar 01 Javascript
node.js实现端口转发
Apr 14 Javascript
jQuery实现简单倒计时功能的方法
Jul 04 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
Jul 05 Javascript
详解require.js配置路径的用法和css的引入
Sep 06 Javascript
JS实现二维数组元素的排列组合运算简单示例
Jan 28 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
PHP语法速查表
2007/01/02 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
php array 转json及java 转换 json数据格式操作示例
2019/11/13 PHP
JS中的数组的sort方法使用示例
2014/01/22 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
Python回调函数用法实例详解
2015/07/02 Python
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
利用Python破解验证码实例详解
2016/12/08 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
Python3常见函数range()用法详解
2019/12/30 Python
Tensorflow 实现释放内存
2020/02/03 Python
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
服务标兵事迹材料
2014/05/04 职场文书
Spring Bean是如何初始化的详解
2022/03/22 Java/Android