当鼠标经过时如何改变颜色?

grant_zgx 2006-11-23 04:30:55
在DataGrid中有一模板列,上面绑定了一个超链接按钮,
如何可以做到当鼠标经过该单元格时改变单元格的颜色为灰色,鼠标离开该单元格时颜色变回原来的颜色?
当鼠标经过超链接按钮时,超链接按钮的颜色显示为红色,鼠标离开时,超链接按钮为蓝色显示?
...全文
1610 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
shumark 2006-11-26
  • 打赏
  • 举报
回复
a.hover
{
color:red;
}
a.link
{
color:blue;
}
ccc01 2006-11-26
  • 打赏
  • 举报
回复
这种事情应该放在客户端来处理,不应该放在服务器端代码里面,这样对性(功)能有点好处
grant_zgx 2006-11-24
  • 打赏
  • 举报
回复
qi_ting(奶牛) 确实100%正确,保证多给些分
HJS1820 2006-11-24
  • 打赏
  • 举报
回复
up
tangrui0806 2006-11-24
  • 打赏
  • 举报
回复
感觉还是用css方便点,在后台写代码会影响执行效率。
biao1 2006-11-24
  • 打赏
  • 举报
回复
mark
mengxiang1618 2006-11-24
  • 打赏
  • 举报
回复
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==

ListItemType.AlternatingItem){
e.Item.Attributes.Add

("onmouseover","this.style.backgroundColor='Silver'");
e.Item.Attributes.Add

("onmouseout","this.style.backgroundColor='white'");
}
这样就可以让鼠标移动过行的时候将颜色变成silver移走之后变成white(本色)。
前面的判断可以排除鼠标移动到Head和Foot的时候也有相同的效果,这样可以把脚本

只产生在里面的项上。

或者指定某列变色:
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==

ListItemType.AlternatingItem){
e.Item.Cells[2].Attributes.Add

("onmouseover","this.style.backgroundColor='Silver'");
e.Item.Cells[2].Attributes.Add

("onmouseout","this.style.backgroundColor='white'");
}

不但如此你还可以指定鼠标移动到某一列时鼠标的形状:
e.Item.Cells[3].Style("cursor") = "hand"
或者点击某一个单元个显示提示信息:
e.Item.Cells[3].Attributes.Add("onclick", "alert('你点击的ID是: " +

e.Item.Cells[0].Text + "!');")
等等...

通过这个方法我们还可以添加在鼠标移动到行上出现提示的效果
e.Item.Cells[2].Attributes.Add("title","在这里可以添加提示信息");

neustrong 2006-11-24
  • 打赏
  • 举报
回复
问 datagrid 这么多。。
qi_ting 2006-11-23
  • 打赏
  • 举报
回复
private void changeRowColor(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//如果是数据项并且是交替项
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//添加自定义属性,当鼠标移过来时设置该行的背景色为"6699ff",并保存原背景色
e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");
//添加自定义属性,当鼠标移走时还原该行的背景色
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor");

}
}

private void DataGridDataBind()
{
//定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
//创建数据适配器对象
SqlDataAdapter da = new SqlDataAdapter("select LastName,FirstName,Title,TitleOfCourtesy,City from Employees",conn);
//创建DataSet对象
DataSet ds = new DataSet();
try
{
//填充数据集
da.Fill(ds,"testTable");
//进行数据绑定
dgMouseOver.DataSource = ds.Tables["testTable"];
dgMouseOver.DataBind();
}
catch(Exception error)
{
Response.Write(error.ToString());
}
}
这个可是100%的正确答案啊,多给点分嘛!
dinoLgrace 2006-11-23
  • 打赏
  • 举报
回复
学习
grant_zgx 2006-11-23
  • 打赏
  • 举报
回复
我定义了CSS样式,为什么有些超链可以变颜色,有些不行

A:link { COLOR: blue; TEXT-DECORATION: none }
A:hover { COLOR:Red }
qi_ting 2006-11-23
  • 打赏
  • 举报
回复
写一个CSS样式表,然后调用他的onmouseover和onmouseout事件,可以自己定义的.
ccc01 2006-11-23
  • 打赏
  • 举报
回复
如果在gridview_RowDataBound事件里面处理当然也能达到效果,不过这样有点影响效率,要把所有行遍历一遍

而在JS里面处理,是在页面呈现出来之后,这样就不会影响 性(功)能
grant_zgx 2006-11-23
  • 打赏
  • 举报
回复
当鼠标经过时如何改变网格按钮列或超链接列的颜色?
ccc01 2006-11-23
  • 打赏
  • 举报
回复
我日哦,哪说的一千个记录要写一千次哦,Name属性不像ID,是不会变的

其实只要你分析一下生成的HTML或者你懂自定义控件的话,更简单了
grant_zgx 2006-11-23
  • 打赏
  • 举报
回复
谢谢大家
PCHWBANK 2006-11-23
  • 打赏
  • 举报
回复
这样的话就不好了,如果有100条记录就得写100个?

还是用循环? 我觉得还是在itemdatabind 里设置好
ccc01 2006-11-23
  • 打赏
  • 举报
回复
其实不就是多个判断而已
比如说
if(event.srcElement.all.XXX && event.srcElement.all.XXX.parentElement==event.srcElement)
{
......
}

以上我只是说了一下思路咯,代码没经过测试
PCHWBANK 2006-11-23
  • 打赏
  • 举报
回复
上面的方法很新鲜,但是datagrid里 超连接按钮很多,而且属于动态的,能否解决?
ccc01 2006-11-23
  • 打赏
  • 举报
回复
我日哦,那么麻烦
直接加一个JS搞定

document.body.onmouseover=function()
{
if(event.srcElement.children.length>0 && event.srcElement.children[0].name='XXX')
{
event.srcElement.style.backgroundColor='#ff0000';
}
}

上面的 'XXX'是你的超链接按扭的Name,不是ID,因为这里面的ID在生成的HTML中是会变的,#ff0000改成你想要的背景色就OK了

鼠标移除的时候在document.body.onmouseout上处理一下搞定了
加载更多回复(10)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧