1

我有一个列表视图,当您使用以下代码将鼠标悬停在一行时,它会突出显示一行:

对于 TR:

<tr class="trAlt" onmouseover="over(this)" onmouseout="outalt(this)">

<script>
    function over(o) {
        if ('trClicked' != o.className)
            o.className = 'trOver';
    function outalt(o) {
        if ('trClicked' != o.className)
            o.className = 'trAlt';
   function clicked(o) {
        o.className = ('trClicked' == o.className) ? 'tr' : 'trClicked';
</script>

现在对于一个特定的单元格,我需要根据它包含的值设置 bgcolor ,我这样做是这样的:

<td nowrap="nowrap" bgcolor='<%#Get_BGColor(Eval("Efficiency"),Eval("AvgAdjEfficiency"))%>'>
   <asp:Label ID="EfficiencyLabel" runat="server" 
       Text='<%# Eval("Efficiency") %>' />
</td>

款式标签:

<style>
       /* ItemTemplate TR background colour */
        .tr 
        {
            background-color:#222;
        } 
        /* AlternatingItemTemplate TR background colour */
        .trAlt
        {
            background-color:#595959;
        }
        /* When mouse is over TR background colour */
        .trOver 
        {
            background-color:#898989;
        } 
        /* When mouse click on TR background colour */
        .trClicked 
        {
            background-color:Red;
        } 
    </style>

问题是当鼠标悬停时,上面的单元格会覆盖该行的 bgcolor(上面的函数 over())。

我怎样才能做到这一点,当您将鼠标悬停时,它也会将该单元格 bgcolor 更改为突出显示颜色,然后将其设置回来(上面的函数 outalt() )?

4

4 回答 4

2

你可以使用 css

.trAlt:hover td{
   background: red;
}
于 2012-06-22T09:47:30.627 回答
2
  <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
DataSourceID="ObjectDataSource1">
<Columns>
  <asp:TemplateField>
    <ItemTemplate>
      <table>
        <tr>
          <td>
            <%# Eval("ItemID") %>
          </td>
          <td>
            <div class="highlightBox">
              <%# Eval("Title") %>
            </div>
          </td>
        </tr>
      </table>
    </ItemTemplate>
  </asp:TemplateField>
</Columns>

.highlightBox
{

}

.highlightBox:hover
{
  background-color: Yellow;
}
于 2012-06-22T11:25:52.763 回答
0

好的,如果你想让你的bg恢复到原来的样子,那么

在你的 tr 标签中

class="trAlt" onmouseover="over(this)" onmouseout="outalt(this)"

一旦你完成了所有这些,添加顶部的那个人给你的样式并将那件好的工作放入头部标签......然后你应该看到当你将鼠标悬停在其中的任何单元格上时行它应该突出显示该行中的所有单元格。如果这不起作用,请查看您的代码......并找到问题所在。

此外,我没有使用脚本标签或 asp 标签,因为它们只是一些额外的东西,它们会干扰单元格,比如......其中一个单元格会变成绿色并保持这种状态,除非你将鼠标悬停在它上面然后它就会消失回到保持绿色。

于 2020-03-05T08:41:37.143 回答
-1

trOver 和 trAlt 的定义是什么?你在那里设置背景颜色吗?

于 2012-06-22T09:43:20.677 回答