以下のコードで行をマウスオーバーすると、行が強調表示されるリストビューがあります。
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())。