Click here to Skip to main content
Licence CPOL
First Posted 11 May 2008
Views 135,334
Downloads 1,897
Bookmarked 68 times

Hover Effects for GridView Rows Using CSS

By | 11 May 2008 | Article
This article describes how to apply hover effects on GridView rows using CSS.

Introduction

Last week, I learned a technique of applying a hover effect to an HTML table’s rows with the help of pure CSS, without using a single line of JavaScript code. Great! Isn’t it? Before that, I’ve been doing this using JavaScript, as in my previous article: Hotmail-like Mouse Over and Mouse Out Effects on GridView. I thought it might be interesting to implement this technique on a GridView in order to create a hover effect on the GridView rows. So, I’ve quickly created a sample application and decided to share it. Below is the implementation details of this technique for applying hover effect to GridView rows using CSS.

The GridView HTML Code

The HTML code for the GridView in this article will looks like:

<asp:GridView ID="gvHover" BackColor="WhiteSmoke" runat="server" AutoGenerateColumns="False"
              GridLines="Vertical" CssClass="grid-view" OnRowCreated="gvHover_RowCreated">
   <Columns>
      <asp:BoundField HeaderText="n" DataField="n">
         <HeaderStyle Width="25px" />
         <ItemStyle Width="25px" />
      </asp:BoundField>
      <asp:BoundField HeaderText="sqrt(n)" DataField="sqrtn">
         <HeaderStyle Width="150px" />
         <ItemStyle Width="150px" />
      </asp:BoundField>
      <asp:BoundField HeaderText="qbrt(n)" DataField="qbrtn">
         <HeaderStyle Width="150px" />
         <ItemStyle Width="150px" />
      </asp:BoundField>
   </Columns>
</asp:GridView>

Styling the GridView

In order to style the Gridview, attach a CSS class to it, like so:

<asp:GridView ... CssClass="grid-view" ... > ... </asp:GridView>

Styling the GridView’s Header Row, Normal Row, and Alternate Row

In order to style the GridWiew’s header, normal, and alternate rows, attach the CSS classes to these rows through the RowCreated event of the GridView, as:

//Add CSS class on header row.
if (e.Row.RowType == DataControlRowType.Header)
   e.Row.CssClass = "header";

//Add CSS class on normal row.
if (e.Row.RowType == DataControlRowType.DataRow && 
          e.Row.RowState == DataControlRowState.Normal)
   e.Row.CssClass = "normal";

//Add CSS class on alternate row.
if (e.Row.RowType == DataControlRowType.DataRow && 
          e.Row.RowState == DataControlRowState.Alternate)
   e.Row.CssClass = "alternate";

The CSS Classes

Below are the CSS classes that have been used above to style the GridView and its header, normal, and alternate rows:

.grid-view
{
   padding: 0;
   margin: 0;
   border: 1px solid #333;
   font-family: "Verdana, Arial, Helvetica, sans-serif, Trebuchet MS";
   font-size: 0.9em;
}

.grid-view tr.header
{
   color: white;
   background-color: #FF5600;
   height: 25px;
   vertical-align: middle;
   text-align: center;
   font-weight: bold;
}

.grid-view tr.normal
{
   color: black;
   background-color: #FDC64E;
   height: 25px;
   vertical-align: middle;
   text-align: center;
}

.grid-view tr.alternate
{
   color: black;
   background-color: #D59200;
   height: 25px;
   vertical-align: middle;
   text-align: center;
}

Adding a Hover Effect to the GridView rows

Finally, to apply the hover effect to the GridView rows, the following CSS is used:

.grid-view tr.normal:hover, .grid-view tr.alternate:hover
{
   background-color: white;
   color: black;
   font-weight: bold;
}

Note that the hover effect has been applied to the normal and alternate rows only, not on the header row. You can also use different color schemes for the normal and alternate rows separately, for the hover effect.

Using the CSS Classes

Put all the corresponding CSS classes in a stylesheet and give its reference on the web page’s head section, as:

<link href="StyleSheet.css" rel="stylesheet" type="text/css" />

Conclusion

That’s all about this technique. Just download the sample application and happy CSS! I have tested this application on various browsers and it worked fine. Below is the list of those browsers:

Browsers.png

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Samir NIGAM

Team Leader

India India

Member

SAMIR NIGAM is a CodeProject MVP, a Microsoft Certified Technology
Specialist (MCTS)
as well as a Microsoft Certified Professional Developer (MCPD)
in C# for web-based applications. He is an insightful IT professional with
results-driven comprehensive technical skill having rich, hands-on work experience
in web-based applications using ASP.NET, C#, AJAX, Microsoft
Enterprise Library
, MS SQL Server 2005.
He has earned his master degree (MCA) from U.P. Technical University, Lucknow,
INDIA, his post graduate dipoma (PGDCA ) from Institute of Engineering and
Rural Technology, Allahabad, INDIA and his bachelor degree (BSc - Mathematics)
from University of Allahabad, Allahabad, INDIA.
He has good knowledge of Object Oriented Programming, 3-Tier Architecture
and Algorithm Analysis & Design as well as good command over cross-browser
client side programming using JavaScript.
Awards:



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralMy vote of 4 Pinmembergajendra bahakar20:25 7 Oct '11  
GeneralGood work Samir. PinmemberNetNat0:46 29 Dec '09  
GeneralRe: Good work Samir. PinmvpSamir NIGAM17:14 29 Dec '09  
GeneralMy vote of 1 PinmemberDaniel Nutu22:15 7 Oct '09  
GeneralRe: My vote of 1 PinmvpSamir NIGAM17:08 29 Dec '09  
Questionadding a hover effect to an ImageButton control PinmemberLMRT0911:47 26 Aug '09  
AnswerRe: adding a hover effect to an ImageButton control PinmemberNetNat1:33 29 Dec '09  
GeneralMy vote of 1 PinmemberHemant0262:35 6 Aug '09  
GeneralRe: My vote of 1 PinmvpSamir NIGAM17:06 29 Dec '09  
GeneralGreat work Pinmembergrantmasterb8:32 3 Jul '09  
GeneralRe: Great work PinmvpSamir NIGAM19:51 3 Jul '09  
GeneralGood work samir Pinmemberdeepak_rai20:04 6 Mar '09  
GeneralRe: Good work samir PinmemberSamir NIGAM18:00 8 May '09  
Generalok good Pinmemberahlawy40:44 20 Jan '09  
GeneralRe: ok good PinmemberSamir NIGAM18:00 8 May '09  
GeneralStyling the GridView’s Header Row, Normal Row, and Alternate Row Pinmemberanayda1:05 26 Aug '08  
GeneralRe: Styling the GridView’s Header Row, Normal Row, and Alternate Row PinmemberSamir NIGAM18:02 8 May '09  
Thanks a lot.
 
Samir NIGAM
My Articles

QuestionHow to select a row by a simple mouse click? PinmemberMember 181253923:23 2 Jul '08  
AnswerRe: How to select a row by a simple mouse click? PinmemberSAMir Nigam18:22 3 Jul '08  
Generalwhy use code behind page to attach CSS class PinmemberMohm'ed Melhem19:00 10 Jun '08  
GeneralRe: why use code behind page to attach CSS class Pinmember SAMir Nigam20:57 10 Jun '08  
Questiondoesn't work with IE6 PinmemberMayuresh8010:13 9 Jun '08  
AnswerRe: doesn't work with IE6 Pinmember SAMir Nigam 18:13 9 Jun '08  
AnswerRe: doesn't work with IE6 Pinmember SAMir Nigam 1:10 17 Jun '08  
GeneralRe: doesn't work with IE6 PinmemberJeroenh0:27 27 Aug '08  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web04 | 2.5.120604.1 | Last Updated 12 May 2008
Article Copyright 2008 by Samir NIGAM
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid