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 相关文章推荐
Jquery中使用setInterval和setTimeout的方法
Apr 08 Javascript
JS中的this变量的使用介绍
Oct 21 Javascript
javascript中文本框中输入法切换的问题
Dec 10 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
Jan 10 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
May 30 Javascript
Vue中父组件向子组件通信的方法
Jul 11 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
Aug 16 Javascript
js实现鼠标单击Tab表单切换效果
May 16 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
Jul 31 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 Javascript
Vue实现input宽度随文字长度自适应操作
Jul 29 Javascript
JS实现简易贪吃蛇游戏
Aug 24 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
11个PHP 分页脚本推荐
2011/08/15 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
PHP 实现链式操作
2021/03/09 PHP
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
angular.element方法汇总
2015/01/07 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
python双向链表实现实例代码
2013/11/21 Python
探究python中open函数的使用
2016/03/01 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
python中requests库session对象的妙用详解
2017/10/30 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
python 装饰器重要在哪
2021/02/14 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
小学运动会入场式解说词
2014/02/18 职场文书
详解Flask开发技巧之异常处理
2021/06/15 Python
Go gorilla/sessions库安装使用
2022/08/14 Golang