在 ListView 的 ItemDataBound 事件中為每行 <tr> 動態加入 onmouseover/onmouseout 屬性,實現滑鼠懸停高亮。
<asp:ListView ID="ListView1" runat="server" OnItemDataBound="ListView1_ItemDataBound">
<LayoutTemplate>
<table id="Table1" runat="server" border="0">
<tr runat="server" id="itemPlaceholder" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server" id="Tr">
<td><%# Eval("ID") %></td>
<td><%# Eval("name") %></td>
<td><%# Eval("age") %></td>
</tr>
</ItemTemplate>
</asp:ListView>
protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e) {
if (e.Item.ItemType == ListViewItemType.DataItem) {
var row = e.Item.FindControl("Tr") as HtmlTableRow;
row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");
row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
}
}
runat="server" id="Tr" 使 <tr> 成為伺服器控制項,可在後端 FindControl 取得。c 暫存原背景色,離開時還原,避免硬編碼顏色值。