标题:如何实现鼠标指向GridView控件的行时,该行改变颜色,离开该行时又恢复原来 ...
只看楼主
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
结帖率:100%
 问题点数:0 回复次数:15 
如何实现鼠标指向GridView控件的行时,该行改变颜色,离开该行时又恢复原来的颜色?
如何实现鼠标指向GridView的行时,该行改变颜色,离开该行时又恢复原来的颜色???这个肯定要用到JavaScript脚本了吗?还是GridView控件本身有此功能???
搜索更多相关主题的帖子: GridView控件 鼠标 颜色 行时 脚本 
2007-03-08 17:51
mldark
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-9-5
得分:0 
这个啊在属性里面应该有的 你找找吧


2007-03-08 17:58
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
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
得分:0 
就是个鼠标事件

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-03-09 12:36
lq7350684
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5089
专家分:98
注 册:2006-11-6
得分:0 
我会asp里实现这个功能的代码.
<tr onMouseOver="this.bgColor='#d2d2d2'" onMouseOut="this.bgColor='#f8f8f8'" bgcolor="#f8f8f8">

我不会.net,现在想学,今天第一次来本区,不知道这个asp里的代码能用在.net里不.或者是不是可以改一下.
望高手指点.
2007-03-09 16:02
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-123127-1-1.html




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

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