| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1564 人关注过本帖
标题:如何实现鼠标指向GridView控件的行时,该行改变颜色,离开该行时又恢复原来 ...
取消只看楼主 加入收藏
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
结帖率:100%
收藏
 问题点数:0 回复次数:8 
如何实现鼠标指向GridView控件的行时,该行改变颜色,离开该行时又恢复原来的颜色?
如何实现鼠标指向GridView的行时,该行改变颜色,离开该行时又恢复原来的颜色???这个肯定要用到JavaScript脚本了吗?还是GridView控件本身有此功能???
搜索更多相关主题的帖子: GridView控件 鼠标 颜色 行时 脚本 
2007-03-08 17:51
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if ((e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == (DataControlRowState.Selected | DataControlRowState.Normal)) && e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#B1CFF8'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#E3EAEB';");
}
if ((e.Row.RowState == DataControlRowState.Alternate || e.Row.RowState == (DataControlRowState.Selected | DataControlRowState.Alternate))
&& e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#B1CFF8'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='White';");
}
}

测试通过,但目前还未完全看明白代码的意思。

我是2.0超级菜鸟,请多多教导!
2007-03-09 08:30
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
还有一个问题,我的一个页面中有五个GridView控件,均要求要实现鼠标指向GridView的行时,该行改变颜色,离开该行时又恢复原来的颜色。如果逐个GridView控件均在RowCreated事件加上上述代码,变得代码太繁琐,重复利用率不高。如何能实现五个GridView控件共享上述的代码???谢谢!

我是2.0超级菜鸟,请多多教导!
2007-03-09 08:35
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
这样好像可以,大家看看。

protected void GridView5_RowCreated(object sender, GridViewRowEventArgs e)
{
Change(e);
}
protected void GridView4_RowCreated(object sender, GridViewRowEventArgs e)
{
Change(e);
}
protected void GridView3_RowCreated(object sender, GridViewRowEventArgs e)
{
Change(e);
}
protected void GridView2_RowCreated(object sender, GridViewRowEventArgs e)
{
Change(e);
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
Change(e);
}
protected void Change(GridViewRowEventArgs e)
{
if ((e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == (DataControlRowState.Selected | DataControlRowState.Normal)) && e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#B1CFF8'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#E3EAEB';");
}
if ((e.Row.RowState == DataControlRowState.Alternate || e.Row.RowState == (DataControlRowState.Selected | DataControlRowState.Alternate))
&& e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#B1CFF8'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='White';");
}
}

我是2.0超级菜鸟,请多多教导!
2007-03-09 08:48
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
还有一个问题:在此基础上,如何实现对于 已选定 的行,光标的移过 已选定的行 不改变其颜色,只改变非已选定行的颜色?谢谢!

我是2.0超级菜鸟,请多多教导!
2007-05-23 15:17
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
去掉上边代码中的selected状态(如下代码),遇到的问题是:当选定一行后,然后上下移动鼠标,该选定行的背景颜色就变成了不是选定行的背景颜色了,然后再选定该行,然后再上下移动鼠标,这时该选定行的背景颜色就不会改变了。
换言之,就是要连续点击 两次 某行(连续两次选定该行),才会使该选定行的背景颜色不会因鼠标的onmouseover和onmouseout事件而改变。
怎么样才能实现 一次 选定该行后,上下移动鼠标,不会改变该选定行的背景颜色???谢谢!

protected void Change(GridViewRowEventArgs e)
{
if (e.Row.RowState == DataControlRowState.Normal && e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#B1CFF8'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#E3EAEB';");
}
if (e.Row.RowState == DataControlRowState.Alternate && e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#B1CFF8'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='White';");
}
}

图片附件: 游客没有浏览图片的权限,请 登录注册

[此贴子已经被作者于2007-5-24 9:38:11编辑过]


我是2.0超级菜鸟,请多多教导!
2007-05-24 09:33
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 

我是2.0超级菜鸟,请多多教导!
2007-05-27 11:04
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 

第9楼的问题还未解决,继续求助,谢谢大家!


我是2.0超级菜鸟,请多多教导!
2007-05-31 17:33
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
以下是引用Arui在2007-5-31 19:36:15的发言:
protected void GridView1_RowDataBound(object sender,GridViewEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover","c=this.style.backgroundColor;this.style.backgroundColor='#123456'");
e.Row.Attributes.Add("onmouseout","this.style.backgroundColor=c");
}

}

OK!

谢谢!但未能解决第9楼碰到的问题:当选定一行后,然后上下移动鼠标,该选定行的背景颜色就变成了不是选定行的背景颜色了……
请大家继续帮忙,谢谢大家!

[此贴子已经被作者于2007-6-1 8:26:50编辑过]


我是2.0超级菜鸟,请多多教导!
2007-06-01 08:25
快速回复:如何实现鼠标指向GridView控件的行时,该行改变颜色,离开该行时又恢复 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059666 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved