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もハイライト色に変更され、元に戻すようにするにはどうすればよいですか(上記のfunction 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

OK、bgを元の状態に戻したい場合は

あなたのtrタグで

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

すべてが完了したら、一番上の男があなたに与えたスタイルを追加し、その良い作品をヘッドタグに入れます...次に、その中のセルのいずれかにカーソルを合わせると、それが表示されます。行は、その行のすべてのセルを強調表示する必要があります。それがうまくいかなかった場合は、コードを調べて...問題を見つけてください。

また、scriptタグやaspタグを使用していません。これは、セルをバグアウトする余分なものであるためです...セルの1つが緑色に変わり、カーソルを合わせない限りそのままになります。緑を維持することに戻ります。

于 2020-03-05T08:41:37.143 に答える
-1

trOverとtrAltの定義は何ですか?そこに背景色を設定していますか?

于 2012-06-22T09:43:20.677 に答える