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 Deferred和Promise创建响应式应用程序详细介绍
Mar 05 Javascript
jquery如何判断某元素是否具备指定的样式
Nov 05 Javascript
JavaScript实现基于Cookie的存储类实例
Apr 10 Javascript
javascript判断图片是否加载完成的方法推荐
May 13 Javascript
深入理解jQuery之事件移除
Jun 02 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
Sep 09 Javascript
利用JQuery直接调用asp.net后台的简单方法
Oct 27 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
Feb 02 Javascript
js实现显示手机号码效果
Mar 09 Javascript
详解vuex 中的 state 在组件中如何监听
May 23 Javascript
javaScript实现游戏倒计时功能
Nov 17 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
Jan 21 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与MySQL数据库操作常用代码 收集
2010/03/21 PHP
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
js中unicode转码方法详解
2015/10/09 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
Python类如何定义私有变量
2020/02/03 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
建筑个人求职信范文
2014/01/25 职场文书
行政助理工作职责范本
2014/03/04 职场文书
安全生产活动月方案
2014/03/09 职场文书
毕业设计说明书
2014/05/07 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB
win11开机发生死循环重启怎么办?win11开机发生死循环重启解决方法
2022/08/05 数码科技