Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Help: problems with ASP.NET menu on Web Part

0 views
Skip to first unread message

João Maia

unread,
May 1, 2008, 2:38:48 PM5/1/08
to
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.WebControls.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.renderControl(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 StaticDisplayLevels
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

unread,
May 1, 2008, 8:29:43 PM5/1/08
to
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 programmatically
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" <jm...@yahoo.com> wrote in message
news:7289dabc-9d76-4dd2...@l42g2000hsc.googlegroups.com...

Madhur

unread,
May 2, 2008, 1:46:54 AM5/2/08
to
You do not add the controls to webpart by overriding the RenderWebPart
method.

Add it in CreateChildControls() method using Controls.Add() method.

--
Madhur

"João Maia" <jm...@yahoo.com> wrote in message
news:7289dabc-9d76-4dd2...@l42g2000hsc.googlegroups.com...

João Maia

unread,
May 5, 2008, 7:17:22 AM5/5/08
to
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.com> wrote:
> You do not add the controls to webpart by overriding the RenderWebPart
> method.
>
> Add it in CreateChildControls() method using Controls.Add() method.
>
> --
> Madhur
>
> "João Maia" <jm...@yahoo.com> wrote in message
>
> news:7289dabc-9d76-4dd2...@l42g2000hsc.googlegroups.com...
>
>
>
> > Hi there,
>

> > I am having a weird problem in trying to use a ASP.NETmenuinside a


> > custom web part. I am developing a custom web part that has amenu
> > inside (just themenu, nothing else). Themenuis a

> > System.Web.UI.WebControls.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.renderControl(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, themenustructure is always fully expanded


> > (menus, submenus, etc), even though I have set the StaticDisplayLevels
> > 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 -

0 new messages