Help: problems with ASP.NET menu on Web Part

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • =?ISO-8859-1?Q?Jo=E3o_Maia?=

    Help: problems with ASP.NET menu on Web Part

    Hi there,

    I am having a weird problem in trying to use a ASP.NET menu inside a
    custom web part. I am developing a custom web part that has a menu
    inside (just the menu, nothing else). The menu is a
    System.Web.UI.W ebControls.Menu (ASP.NET 2.0) object. If I add the menu
    to a simple ASPX web form, it works nice. However, I am adding it to
    my web part, by overriding the RenderWebPart method and doing
    something like:

    theMenu.renderC ontrol(writer) //writer is the HTMLTextWriter
    parameter of the RenderWebPart method

    There are two problems when the menu is displayed on the webpart
    (after this webpart is deployed to a Sharepoint Site):
    - When the page loads, the menu structure is always fully expanded
    (menus, submenus, etc), even though I have set the StaticDisplayLe vels
    property to 1. It then collapses but only when I hover with the mouse
    pointer over each top level Menu Item.
    - Whenever I pass with the mouse over each menu item, if it has
    dynamic submenus, they get displayed but in the wrong place. What's
    more, I see a "phantom DIV", more or less with the same size as the
    submenu that should be displayed, but that DIV and the menu items
    appear in different places on the page !!

    I have not messed up with the menu's CSS style sheets, nor set any
    other property other than the Orientation property to Horizontal (in
    vertical it's weird as well). I suspect it has something to do with
    the page structure that Sharepoint renders to the browser. Since that
    structure is full of DIV tags, and the menu also has some DIV tags
    when it renders to the client, I suspect that the browser is getting
    "lost" in where to position the DIVs of each submenu and ends up
    placing them in the wrong places. As I said, outside the sharepoint
    and webpart environment (in a plain simple asp.net page it works
    fine).

    Has anyone had any similar problems ? I am getting totally lost here
    and really could use some help...

    Thanks,

    Joao Maia
  • Fernando Rodriguez

    #2
    Re: problems with ASP.NET menu on Web Part

    I can tell you why it's happening, I'm not sure about the solution though.

    The Menu control is a DHTML control, besides rendering the HTML it might
    register scripts on other parts of the page (probably it just spit out the
    DIV tags and registers some script to generate the menu programatically ), so
    you cannot render like that.

    Maybe if you add the Menu to you WebPart controls collection before
    rendering it, it will be able to get references to the rest of the page and
    will render correctly. I don't have the time to try it though.

    Also if you make your webpart composite (by adding controls programmaticall y
    to it and letting it render them rather than rendering the HTML manually) it
    would definitely work.

    Hope that helps,
    Fernando L Rodriguez, MCP

    "João Maia" <jmaia@yahoo.co mwrote in message
    news:7289dabc-9d76-4dd2-adf9-b751c27096ca@l4 2g2000hsc.googl egroups.com...
    Hi there,
    >
    I am having a weird problem in trying to use a ASP.NET menu inside a
    custom web part. I am developing a custom web part that has a menu
    inside (just the menu, nothing else). The menu is a
    System.Web.UI.W ebControls.Menu (ASP.NET 2.0) object. If I add the menu
    to a simple ASPX web form, it works nice. However, I am adding it to
    my web part, by overriding the RenderWebPart method and doing
    something like:
    >
    theMenu.renderC ontrol(writer) //writer is the HTMLTextWriter
    parameter of the RenderWebPart method
    >
    There are two problems when the menu is displayed on the webpart
    (after this webpart is deployed to a Sharepoint Site):
    - When the page loads, the menu structure is always fully expanded
    (menus, submenus, etc), even though I have set the StaticDisplayLe vels
    property to 1. It then collapses but only when I hover with the mouse
    pointer over each top level Menu Item.
    - Whenever I pass with the mouse over each menu item, if it has
    dynamic submenus, they get displayed but in the wrong place. What's
    more, I see a "phantom DIV", more or less with the same size as the
    submenu that should be displayed, but that DIV and the menu items
    appear in different places on the page !!
    >
    I have not messed up with the menu's CSS style sheets, nor set any
    other property other than the Orientation property to Horizontal (in
    vertical it's weird as well). I suspect it has something to do with
    the page structure that Sharepoint renders to the browser. Since that
    structure is full of DIV tags, and the menu also has some DIV tags
    when it renders to the client, I suspect that the browser is getting
    "lost" in where to position the DIVs of each submenu and ends up
    placing them in the wrong places. As I said, outside the sharepoint
    and webpart environment (in a plain simple asp.net page it works
    fine).
    >
    Has anyone had any similar problems ? I am getting totally lost here
    and really could use some help...
    >
    Thanks,
    >
    Joao Maia

    Comment

    • Madhur

      #3
      Re: problems with ASP.NET menu on Web Part

      You do not add the controls to webpart by overriding the RenderWebPart
      method.

      Add it in CreateChildCont rols() method using Controls.Add() method.

      --
      Madhur

      "João Maia" <jmaia@yahoo.co mwrote in message
      news:7289dabc-9d76-4dd2-adf9-b751c27096ca@l4 2g2000hsc.googl egroups.com...
      Hi there,
      >
      I am having a weird problem in trying to use a ASP.NET menu inside a
      custom web part. I am developing a custom web part that has a menu
      inside (just the menu, nothing else). The menu is a
      System.Web.UI.W ebControls.Menu (ASP.NET 2.0) object. If I add the menu
      to a simple ASPX web form, it works nice. However, I am adding it to
      my web part, by overriding the RenderWebPart method and doing
      something like:
      >
      theMenu.renderC ontrol(writer) //writer is the HTMLTextWriter
      parameter of the RenderWebPart method
      >
      There are two problems when the menu is displayed on the webpart
      (after this webpart is deployed to a Sharepoint Site):
      - When the page loads, the menu structure is always fully expanded
      (menus, submenus, etc), even though I have set the StaticDisplayLe vels
      property to 1. It then collapses but only when I hover with the mouse
      pointer over each top level Menu Item.
      - Whenever I pass with the mouse over each menu item, if it has
      dynamic submenus, they get displayed but in the wrong place. What's
      more, I see a "phantom DIV", more or less with the same size as the
      submenu that should be displayed, but that DIV and the menu items
      appear in different places on the page !!
      >
      I have not messed up with the menu's CSS style sheets, nor set any
      other property other than the Orientation property to Horizontal (in
      vertical it's weird as well). I suspect it has something to do with
      the page structure that Sharepoint renders to the browser. Since that
      structure is full of DIV tags, and the menu also has some DIV tags
      when it renders to the client, I suspect that the browser is getting
      "lost" in where to position the DIVs of each submenu and ends up
      placing them in the wrong places. As I said, outside the sharepoint
      and webpart environment (in a plain simple asp.net page it works
      fine).
      >
      Has anyone had any similar problems ? I am getting totally lost here
      and really could use some help...
      >
      Thanks,
      >
      Joao Maia

      Comment

      • =?ISO-8859-1?Q?Jo=E3o_Maia?=

        #4
        Re: problems with ASP.NET menu on Web Part

        Hi,

        Thanks, that worked ok. But now I have another problem. I want to use
        the sharepoint css menu styles and themes on my web part's menu (to
        give it a coherent look and feel to the rest of the sharepoint site
        and to change the menu colors when the user changes the sharepoint
        theme) and I can't seem to get around to do it. Anyone knows how to do
        this ?

        thanks,

        Joao Maia

        On 2 maio, 06:46, "Madhur" <s...@df.comwro te:
        You do not add the controls to webpart by overriding the RenderWebPart
        method.
        >
        Add it in CreateChildCont rols() method using Controls.Add() method.
        >
        --
        Madhur
        >
        "João Maia" <jm...@yahoo.co mwrote in message
        >
        news:7289dabc-9d76-4dd2-adf9-b751c27096ca@l4 2g2000hsc.googl egroups.com...
        >
        >
        >
        Hi there,
        >
        I am having a weird problem in trying to use a ASP.NETmenuinsi de a
        custom web part. I am developing a custom web part that has amenu
        inside (just themenu, nothing else). Themenuis a
        System.Web.UI.W ebControls.Menu (ASP.NET 2.0) object. If I add themenu
        to a simple ASPX web form, it works nice. However, I am adding it to
        my web part, by overriding the RenderWebPart method and doing
        something like:
        >
        theMenu.renderC ontrol(writer)  //writer is the HTMLTextWriter
        parameter of the RenderWebPart method
        >
        There are two problems when themenuis displayed on the webpart
        (after this webpart is deployed to a Sharepoint Site):
        - When the page loads, themenustructur e is always fully expanded
        (menus, submenus, etc), even though I have set the StaticDisplayLe vels
        property to 1. It then collapses but only when I hover with the mouse
        pointer over each top levelMenuItem.
        - Whenever I pass with the mouse over eachmenuitem, if it has
        dynamic submenus, they get displayed but in the wrong place. What's
        more, I see a "phantom DIV", more or less with the same size as the
        submenu that should be displayed, but that DIV and themenuitems
        appear in different places on the page !!
        >
        I have not messed up with themenu'sCSS style sheets, nor set any
        other property other than the Orientation property to Horizontal (in
        vertical it's weird as well). I suspect it has something to do with
        the page structure that Sharepoint renders to the browser. Since that
        structure is full of DIV tags, and themenualso has some DIV tags
        when it renders to the client, I suspect that the browser is getting
        "lost" in where to position the DIVs of each submenu and ends up
        placing them in the wrong places. As I said, outside the sharepoint
        and webpart environment (in a plain simple asp.net page it works
        fine).
        >
        Has anyone had any similar problems ? I am getting totally lost here
        and really could use some help...
        >
        Thanks,
        >
        Joao Maia- Ocultar texto entre aspas -
        >
        - Mostrar texto entre aspas -

        Comment

        Working...