This is a migrated thread and some comments may be shown as answers.

Global Nav with RadMenu open in new window not working

12 Answers 238 Views
Sharepoint Integration
This is a migrated thread and some comments may be shown as answers.
Anumeha
Top achievements
Rank 1
Anumeha asked on 10 Dec 2010, 07:16 PM
We have replaced the regular Sharepoint 2010 Global Nav menu with the Telerik RadMenu.  When a new link is added to the Global Nav and the "Open in new window" option is selected, clicking on that new link in the Global Nav does not open the link in a new window.  Is there a setting that I am missing or is this a bug?  Is there a workaround?

Thanks

12 Answers, 1 is accepted

Sort by
0
Kalina
Telerik team
answered on 16 Dec 2010, 03:23 PM
Hi Anumeha,

In order to open pages in new window you have to set the Target property of the RadMenuItem to "_blank".

If the issue persists - could you please explain your implementation in more details and send me the web part (or the master page) that you use within a support ticket? Thank you in advance.

All the best,
Kalina
the Telerik team
Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
0
Anumeha
Top achievements
Rank 1
answered on 12 Jan 2011, 07:36 PM
I understand that setting the Target property of RadMenuItem to "_blank" will cause the link to open in a new window.  My question is more how do I do that in this particular situation.  We have replaced the Sharepoint global nav menu with the RadMenu.  We are binding to the "CombinedNavSiteMapProvider".  Where in the event sequence can I add code to look at the binding source's "open in new window" property and if true set the RadMenuItem's Target property?  Here is the code from the Sharepoint master page where I have defined the RadMenu and datasource:

<!-- top navigation area -->
<div class="s4-notdlg lattice-globalNav">
 <!-- top navigation publishing data source -->
 <PublishingNavigation:PortalSiteMapDataSource
  ID="topSiteMap"
  runat="server"
  EnableViewState="false"
  SiteMapProvider="CombinedNavSiteMapProvider"
  StartFromCurrentNode="true"
  StartingNodeOffset="0"
  ShowStartingNode="false"
  TrimNonCurrentTypes="Heading"/>
 <div class="menu-horizontal">
  <telerik:RadMenu 
   runat="server"
   ID="TopNavigationMenuV4"
    DataSourceID="topSiteMap"
    AccessKey="<%$Resources:wss,navigation_accesskey%>"
    MaxDataBindDepth="3"
    EnableEmbeddedSkins="false"
    Skin="Lattice"></telerik:RadMenu>
 </div>
</div>


Thanks

0
Kalina
Telerik team
answered on 19 Jan 2011, 11:48 AM
Hello Anumeha,

Thank you for the additional details provided.
I started researching this issue but I am afraid that this will take some more time.
I will contact you when I find something of interest.

All the best,
Kalina
the Telerik team
Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
0
IT Department
Top achievements
Rank 1
answered on 21 May 2013, 11:36 AM
Hi,

Did you ever receive any feedback on how to resolve this? We are experiencing the same issue, and would like to resolve this.
Thank you.
0
Ivan Zhekov
Telerik team
answered on 22 May 2013, 10:46 AM
Hello, Frank.

There is a known issue with IE browsers and links:

if there is an inline element (say a SPAN) inside a link and it's display style is different from "none", context menu on this item will not work.

This is exactly the case with the RadMenu.

Unfortunately, there is a reason why we have those SPAN elements: to provide rich (decorated) and consistent look across browsers. In order to fix this, certain modifications have to be made.

In terms some decoration may be lost e.g. rounded corners in browsers that do not support them (IE6,7,8). If you are fine with such loss of decoration, you can open a separate ticket and tell us the skin you are using. We'll prepare the correct modifications and attach them in the support thread.

Regards,
Ivan Zhekov
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0
IT Department
Top achievements
Rank 1
answered on 23 May 2013, 10:52 AM
Hi Ivan,

I don't quite understand your reply in relation to my problem. Our problem is the same as initially reported in this thread:
We have replaced the top navigation with Telerik RadMenu, displaying three levels down with drop downs on mouse hover.
We are then trying to add a hyperlink under Sites Settings -> Navigation, and check the "Open in new window" checkbox.
The Radmenu displays the new link and menu item as expected, but the page is NOT opened in a new window.

Looking at the page source, the RadMenu hasn't added any target="_blank".

Is there any way of fixing this using for example RadMenuItemBinding, or is your suggestion the way to fix this?
I've seen some other posts regarding this as well, but no solution.
I was thinking maybe something like this:
<DataBindings>
  <radM:RadMenuItemBinding TargetField="somefield"/>
</DataBindings>


But I don't know what the field is called. There should be a trick on how to read the xml coming back from SharePoint, so I could the the fields and attributes available. Do you know how to do this?
Also, if I add

<DataBindings>
    <radM:RadMenuItemBinding Target="_blank" TextField="Title" />
</DataBindings>

all menu items appears with the text "Microsoft.SharePoint.Publishing.Navigation.PortalHierarchyData", and nothing happens when I click on them.

Hope you can help.
0
Ivan Zhekov
Telerik team
answered on 28 May 2013, 10:24 AM
Hi, Frank.

In order for the Target to work (open in new window) the menu items must have a navigate URL. If none is set, then nothing will happen.

I have attached a file with a very simple XML file that you can play with. Notice that if we do not provide the NavigateUrlField, even with Target=_blank / TargetField, nothing happens.

As for your other question -- can you get the Sharepoint XML content -- I guess you can always break / debug into the code and see what the XML is. From that point on, provided that all the necessary fields are accounted for, you can set them bindings settings.

Regards,
Ivan Zhekov
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0
IT Department
Top achievements
Rank 1
answered on 03 Jun 2013, 10:22 AM
Hi Ivan,

Thank you for your feedback, and you examples.
Unfortunately, this didn't solve the issue.

In this screen shot, you can see my demo menu, using Telerik RadMenu (4.4.1) to the left:
(I've left the default menu control to the right for comparison.)



The last menu element is a link to The New York Times, and this is set to Open Link In New Window:



Here you can see my actual control in my master page:

<telerik:RadMenu NumLevels="3" id="mossRadMenu" runat="server" Skin="Default2006"
        AppendDataBoundItems="true" DataSourceId="siteMapDataSource1" CollapseDelay="0"
        RadControlsDir="/_wpresources/RadMenu.Net2/4.4.1.0__bbe59a8ad3533e68/RadControls">
        <items>
            <telerik:RadMenuItem ID="RadMenuItem1" Value="" Text="Home" NavigateUrl="/" runat="server" />
        </items>
        <expandanimation type="None" duration="0"></expandanimation>
        <collapseanimation type="None" duration="1000"></collapseanimation>
    </telerik:RadMenu>
    <PublishingNavigation:portalsitemapdatasource id="siteMapDataSource1" runat="server"
        sitemapprovider="CombinedNavSiteMapProvider" enableviewstate="true" startfromcurrentnode="true"
        startingnodeoffset="0" showstartingnode="false" treatstartingnodeascurrent="true"
        trimnoncurrenttypes="Heading"/>

I was able to get into debug mode, and this gave me the following XML output:

<?xml version="1.0" encoding="utf-8"?>
<Menu>
  <Group NumLevels="1" SkinsPath="/_wpresources/RadMenu.Net2/4.4.1.0__bbe59a8ad3533e68/RadControls/Menu/Skins" Skin="Default2006" CollapseDelay="0" DataFieldID="id" DataFieldParentID="parentID" AppendDataBoundItems="True" RadControlsDir="/_wpresources/RadMenu.Net2/4.4.1.0__bbe59a8ad3533e68/RadControls/" DataSourceID="siteMapDataSource1" DataSourceObject="Telerik.RadMenuUtils.RadControlDataSource">
    <Item NavigateUrl="/" Text="Home" PostBack="False">
      <Group />
    </Item>
    <Item NavigateUrl="/sites/Dev Site/PressReleases/Pages/default.aspx" Text="Press Releases" Value="Press Releases" PostBack="False">
      <Group />
    </Item>
    <Item NavigateUrl="/sites/Dev Site/search" Text="Search" Value="Search" PostBack="False">
      <Group />
    </Item>
    <Item NavigateUrl="http://www.nytimes.com/" Text="The New York Times" Value="The New York Times" PostBack="False">
      <Group />
    </Item>
  </Group>
</Menu>

As you can see, there is no Target information on the menu elements.

Further, when I change this code to include the RadMenuItemBinding, it looks like this:

<telerik:RadMenu NumLevels="3" id="mossRadMenu" runat="server" Skin="Default2006"
        AppendDataBoundItems="true" DataSourceId="siteMapDataSource1" CollapseDelay="0"
        RadControlsDir="/_wpresources/RadMenu.Net2/4.4.1.0__bbe59a8ad3533e68/RadControls">
        <items>
            <telerik:RadMenuItem ID="RadMenuItem1" Value="" Text="Home" NavigateUrl="/" runat="server" />
        </items>
        <expandanimation type="None" duration="0"></expandanimation>
        <collapseanimation type="None" duration="1000"></collapseanimation>
        <DataBindings>
            <telerik:RadMenuItemBinding TextField="Text" NavigateUrlField="NavigateUrl" TargetField="Target" />
        </DataBindings>
    </telerik:RadMenu>
    <PublishingNavigation:portalsitemapdatasource id="siteMapDataSource1" runat="server"
        sitemapprovider="CombinedNavSiteMapProvider" enableviewstate="true" startfromcurrentnode="true"
        startingnodeoffset="0" showstartingnode="false" treatstartingnodeascurrent="true"
        trimnoncurrenttypes="Heading"/>

When I now open the front page again, it looks like this:



Do you have any idea what this is?
Is it possible to fix this? Has this been fixed in newer versions of you product?
0
Ivan Zhekov
Telerik team
answered on 04 Jun 2013, 06:19 PM
Hello,

You are using an old version of the controls the so called Classic controls. That suite is no longer supported, nor it receives any fixes.

It's quite possible that when you upgrade to a later version (but still a recent one) the issues will be gone.

Regards,
Ivan Zhekov
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0
IT Department
Top achievements
Rank 1
answered on 12 Jun 2013, 12:25 PM
Hi,

I downloaded the newest version, changed my code to use this instead, and tested.
Unfortunately, the result is still the same. Here's the same example as provided earlier, using the latest version:
<?xml version="1.0" encoding="utf-16"?>
<RadMenu CollapseDelay="0" AppendDataBoundItems="True" Skin="Default2006" EnableEmbeddedSkins="False" EnableAjaxSkinRendering="False" DataSourceID="siteMapDataSource1" RadControlsDir="/_wpresources/RadMenu.Net2/4.4.1.0__bbe59a8ad3533e68/RadControls">
  <Group>
    <Item Text="Home" NavigateUrl="/" ID="RadMenuItem1" />
    <Item Text="Press Releases" Value="Press Releases" NavigateUrl="/sites/Dev Site/PressReleases/Pages/default.aspx" />
    <Item Text="Search" Value="Search" NavigateUrl="/sites/Dev Site/search" />
    <Item Text="The New York Times" Value="The New York Times" NavigateUrl="http://www.nytimes.com/" />
  </Group>
</RadMenu>

As you can see, the RadMenu control still doesn't retrieve SharePoint's Target settings from the Navigation.

Am I doing something wrong, or hasn't this been requested before?
0
Plamen
Telerik team
answered on 17 Jun 2013, 01:41 PM
Hi frankok,

With the latest version of the RadControls its mark up looks like th eone below:
<telerik:RadMenu ID="RadMenu1" runat="server" Skin="Windows7" >
        <Items>
            <telerik:RadMenuItem Text="File" AccessKey="F">
                <Items>
                    <telerik:RadMenuItem NavigateUrl="~/SitePages/Home.aspx" Text="New" AccessKey="w" />

Please have in mind that the RadControlsDir is not longer used-you can refer to this article where similar scenario is explained.

You can also review this on-line demo where the code for similar issue is provided.

Hope this will be helpful.

Regards,
Plamen
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
0
BraydonCampbell
Top achievements
Rank 1
answered on 17 Feb 2021, 06:31 PM
very useful information  [quote]Your quote goes here[/quote]
Tags
Sharepoint Integration
Asked by
Anumeha
Top achievements
Rank 1
Answers by
Kalina
Telerik team
Anumeha
Top achievements
Rank 1
IT Department
Top achievements
Rank 1
Ivan Zhekov
Telerik team
Plamen
Telerik team
BraydonCampbell
Top achievements
Rank 1
Share this question
or