【问题标题】:ASP.Net Change ImageButton.ImageUrl on mouseOverASP.Net 在 mouseOver 上更改 ImageButton.ImageUrl
【发布时间】:2012-04-04 01:51:16
【问题描述】:

我正在学习 ASP.Net。我有一个动态创建的 ImageButton,我想在用户将鼠标悬停在控件上时更改 ImageURL。我试过了,但它不起作用:

 imgStars.Attributes.Add("onmouseover", "this.src= '~/Images/4Stars.png'")

如果我将代码隐藏中的 imgStars.ImageURL 设置为 ~/Images/4Stars.png 它可以工作。但它在 javascript 中不起作用。

请帮忙。我已经尝试了几个小时来寻找我的答案,但我不知道该怎么做。

【问题讨论】:

  • 波浪号“~”是 *server 上路径解析中使用的特殊字符。这种路径在客户端(脚本将运行的位置)上不起作用。您需要呈现浏览器可以理解的路径。
  • 成功了。当答案如此简单时,我讨厌它。我将 '~/Images/4Stars.png' 更改为 'Images/4Stars.png' 并且它起作用了。我不确定如何将您的评论标记为答案。如果你让我知道。再次感谢

标签: javascript asp.net imagebutton


【解决方案1】:

“xanadont”回答正确,但您的解决方案并非适用于所有情况。要确保客户端可以使用每个相对目录,请使用以下代码 sn-p:

imgStars.Attributes.Add("onmouseover", "this.src= '" + this.Page.ResolveClientUrl("~/Images/4Stars.png") + "'");

【讨论】:

  • 感谢您的帮助。但我在“this”上收到一个错误,它说它是未定义的。我在 VB 而不是 C# 中编码。那会有什么不同吗?
  • 是的,这是语法上的差异。使用“我”而不是“这个”
【解决方案2】:

在 VB 中你应该使用以下代码:

    *imgBtnRegister.Attributes.Add("onmouseover", "this.src='" + Page.ResolveClientUrl("~/Images/Register_2.jpg") + "'")
        imgBtnRegister.Attributes.Add("onmouseout", "this.src='" + Page.ResolveClientUrl("~/Images/Register_1.jpg") + "'")*

use *Page.ResolveClientUrl("~/Images/Register_2.jpg")* instead of *this.Page.ResolveClientUrl("~/Images/Register_2.jpg")*

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多