如何在悬停时保留原始背景颜色?

时间:2011-09-28 19:30:18

标签: asp.net gridview

下面的代码工作正常,但我唯一的问题是:它用backgroundColor='white'覆盖替代行如何在onmouseout上有我的原始替代颜色?

<AlternatingRowStyle BackColor="#DEEEE9" Font-Size="8pt" />

if (e.Row.RowType == DataControlRowType.DataRow)
{
    e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#C2D69B'");
    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='white'");
    e.Row.Attributes.Add("style", "cursor:pointer;");
}

5 个答案:

答案 0 :(得分:0)

我不明白,为什么不拿出“e.Row.Attributes.Add(”onmouseout“,”this.style.backgroundColor ='white'“);”并将其设置为原始备用颜色???

答案 1 :(得分:0)

而不是指定特定颜色,请使用悬停css属性。 看到: http://www.codeproject.com/KB/webforms/MouseHoverUsingCSS.aspx

答案 2 :(得分:0)

您可以指定在onmouseout上确切恢复的颜色:

if (e.Row.RowType == DataControlRowType.DataRow)
{
    string bgcolor = "white"
    if (e.Row.RowState == DataControlRowState.Alternate)
    {
       bgcolor = "#DEEEE9";
    }

    e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#C2D69B'");
    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='" + bgcolor  + "'");
    e.Row.Attributes.Add("style", "cursor:pointer;");
}

答案 3 :(得分:0)

尝试这样的事情:

var color = "<%=System.Drawing.ColorTranslator.ToHtml(GridView1.AlternatingRowStyle.BackColor)%>";

答案 4 :(得分:0)

这适用于更少的代码。在设置backgroundColor之前在鼠标悬停中创建自定义属性,并在鼠标移出时使用它。适用于交替的行颜色。

row.Attributes["onmouseover"] = this.originalstyle=this.style.backgroundColor;this.style.cursor='hand';this.style.backgroundColor='#ffccff';";

row.Attributes["onmouseout"] = "this.style.textDecoration='none';this.style.backgroundColor=this.originalstyle;";