The CssClass property does not affect the MenuLabelHoverStyle, MenuPopupStyle, MenuVerbHoverStyle, MenuVerbStyle, and MenuCheckImageStyle properties in ASP.NET 2.0 (911717)



The information in this article applies to:

  • Microsoft ASP.NET 2.0

SYMPTOMS

Consider the following scenario:
  • In Microsoft ASP.NET 2.0, you try to use a style object of the System.Web.UI.WebControls.WebParts.WebPartZoneBase class.
  • You try to assign the style object by using the CssClass property.
  • You try to use the style object in the WebPartZone server control.
In this scenario, the style does not change as expected. Specifically, the CssClass property does not affect the following style objects:
  • The MenuLabelHoverStyle property
  • The MenuPopupStyle property
  • The MenuVerbHoverStyle property
  • The MenuVerbStyle property
  • The MenuCheckImageStyle property

WORKAROUND

To work around this problem, use inline style attributes for these style objects instead of using the external CssClass property. For example, do not use the following line of code.
<MenuPopupStyle CssClass="wp_menupopup" />
Note In this example, wp_menupopup is the class name of a style rule that defines the background color for elements.

Instead, use the following line of code.
<MenuPopupStyle backcolor="red" />

MORE INFORMATION

Steps to reproduce the problem

  1. In Microsoft Visual Studio 2005, click File, and then click New Web Site.
  2. In the Templates list, click ASP.NET Web Site.
  3. In the Location box, type DriveLetter:\Path\KB911717, and then click OK.

    Note DriveLetter:\Path\KB911717 is a placeholder for the location in which the blank ASP.NET Web site is created.
  4. In Solution Explorer, right-click Default.aspx, and then click Open.
  5. In the code designer, replace the existing code with the following code.
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
        <title>Test Page for KB911717</title>
        <link href="StyleSheet.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:WebPartManager ID="WebPartManager1" runat="server">
            </asp:WebPartManager>
            <asp:WebPartZone ID="WebPartZone1" runat="server">
                <MenuPopupStyle CssClass="wp_menupopup" />
                <ZoneTemplate>
                <asp:calendar id="cal1" runat="server" />                            
                </ZoneTemplate>
            </asp:WebPartZone>
        </div>
        </form>
    </body>
    </html>
    
  6. On the Website menu, click Add New Item.
  7. In the Templates list, click Style Sheet, type Stylesheet.css, and then click Add.
  8. In the code designer, replace the contents of the Stylesheet.css file with the following code.
    .wp_menupopup
    {
    	background-color:Red   
    }
    
  9. On the Debug menu, click Start Debugging.

    Note If you are prompted to add a Web.config file that has debugging enabled, click OK.
  10. When the Default.aspx page opens, click the arrow on the upper-right corner of the Web Part. The background color of the menu is not red as you specified in the Stylesheet.css file.

REFERENCES

For more information about the Microsoft .NET Framework class library WebPartZoneBase class, visit the following Microsoft Developer Network (MSDN) Web site: For more information about the .NET Framework class library WebPartZone class, visit the following MSDN Web site:

Modification Type:MinorLast Reviewed:3/2/2006
Keywords:kbtshoot kbbug KB911717 kbAudDeveloper kbAudITPRO