在 C# 代码隐藏中添加鼠标悬停属性

Adding mouseover attribute in c# code behind

本文关键字:鼠标 悬停 属性 添加 代码 隐藏      更新时间:2023-09-26

我正在使用 ASP.NET,在后面的代码中,我需要添加一个属性,当用户将鼠标放在text1上时,该属性使text2出现;以下是我目前拥有的。

.JS:

function show(name) {
        document.getElementById(name).visible = true;
    }

C#:

text2.Attributes.Add("onmouseover", "show(" + text2.ClientID +")");

.HTML:

<asp:HyperLink runat="server" ID="text2" Visible="false"/>
<asp:HyperLink runat="server" ID="text1" rel="external" />

这里有两件事:

  1. Visible="false"不是样式,而是服务器端属性。将其设置为 false 意味着根本不会呈现控件。所以它甚至不会存在于客户端,当然也没有办法通过javascript访问它。相反,请考虑为其分配一个CSS类,或者至少像style="visibility: hidden"这样的内联样式

  2. 您希望将控件的id包装成引号。假设你的控件最终以 id "blah_blah_text2"结束,你的 javascript 将看起来像

    show(blah_blah_text2);
    

    所以JS会尝试将"blah_blah_text2"作为一个变量进行评估,当然会失败。相反,你想要

    show('blah_blah_text2');
    

    所以

    "show('" + text2.ClientID +"')"
    

我也不太确定visible = true;代表什么。据我所知,DOM 对象中没有这样的属性。你的意思是document.getElementById(name).style.visibility = "visible"吗?

当用户将鼠标放在文本 1 上时,它使文本 2 出现; 以下是我目前拥有的。

Html title 属性用于此目的。

试试这个:

text2.Attributes.Add("title", text2.ClientID);

希望您正在寻找这个:

text2.Attributes.Add("onmouseover", "show('" + text2.ClientID +"')");