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 相关文章推荐
iis6+javascript Add an Extension File
Jun 13 Javascript
js下用eval生成JSON对象
Sep 17 Javascript
jQuery获取动态生成的元素示例
Jun 15 Javascript
jquery获取checkbox的值并post提交
Jan 14 Javascript
微信小程序 Audio API详解及实例代码
Sep 30 Javascript
基于vue 动态加载图片src的解决方法
Feb 05 Javascript
React Native基础入门之调试React Native应用的一小步
Jul 02 Javascript
js中数组常用方法总结(推荐)
Apr 09 Javascript
微信小程序template模版的使用方法
Apr 13 Javascript
浅谈Vuex注入Vue生命周期的过程
May 20 Javascript
微信小程序request请求封装,验签代码实例
Dec 04 Javascript
Node.js文本文件BOM头的去除方法
Nov 22 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 中的一些经验积累
2006/10/09 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
仿微博字符限制效果实现代码
2012/04/20 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
mui框架移动开发初体验详解
2017/10/11 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
python中readline判断文件读取结束的方法
2014/11/08 Python
python简单判断序列是否为空的方法
2015/06/30 Python
详解Python中类的定义与使用
2017/04/11 Python
Python IDLE入门简介
2017/12/08 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
python、Matlab求定积分的实现
2019/11/20 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
留学推荐信写作指南
2014/01/25 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
老人与海读书笔记
2015/06/26 职场文书
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers