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框架veryide.librar源代码
Mar 05 Javascript
javascript 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
jquery 快速回到页首的方法
Dec 05 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
Apr 13 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
May 30 Javascript
基于JS代码实现图片在页面中旋转效果
Jun 16 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
Jun 22 Javascript
JQuery遍历元素的父辈和祖先的方法
Sep 18 Javascript
Bootstrap fileinput组件封装及使用详解
Mar 10 Javascript
vue组件学习教程
Sep 09 Javascript
微信小程序异步处理详解
Nov 10 Javascript
JS立即执行函数功能与用法分析
Jan 15 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调用Java对象的方法
2006/10/09 PHP
PHP+MYSQL的文章管理系统(一)
2006/10/09 PHP
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
jQuery的缓存机制浅析
2014/06/07 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
webpack将js打包后的map文件详解
2018/02/22 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
2019/09/01 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
python连接mysql调用存储过程示例
2014/03/05 Python
python魔法方法-自定义序列详解
2016/07/21 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
python ftplib模块使用代码实例
2019/12/31 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
eDreams意大利:南欧领先的在线旅行社
2018/11/23 全球购物
职业培训师职业生涯规划
2014/02/18 职场文书
开业庆典主持词
2014/03/21 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
5s标语大全
2014/06/23 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
离婚协议书格式范本
2016/03/18 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
python 批量压缩图片的脚本
2021/06/02 Python
Go Plugins插件的实现方式
2021/08/07 Golang
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS