asp.net GridView和DataList实现鼠标移到行行变色

  在GridView控件的RowDataBound事件里添加以下代码

  if (e.Row.RowType == DataControlRowType.DataRow)

  {

  //当鼠标移到行上时更改背景色

  e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#EE82EE'");

  //当鼠标移开时还原背景色

  e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");

  }

  在设计页面添加了DataList控件后,我在使用DataList绑定数据时是通过单元格来绑定的,因此鼠标效果就在源代码页面去实现,如下例所示

  <asp:DataList ID="DataList1" runat="server" BorderWidth="1" >

  <ItemTemplate>

  <tr onmouseover="this.style.backgroundColor='#8EC26F'" onmouseout="this.style.backgroundColor=''" >

  <td>

  <asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'></asp:Label>

  </td>

  <td>

  <asp:Label ID="Label2" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Area") %>'></asp:Label>

  </td>

  </tr>

  </ItemTemplate>

  <HeaderTemplate>

  Header1</td>

  <td>Header2

  </HeaderTemplate>

  </asp:DataList>