Global Nav with RadMenu open in new window not working

12 posts, 0 answers
  1. Anumeha
    Anumeha avatar
    36 posts
    Member since:
    Aug 2010

    Posted 10 Dec 2010 Link to this post

    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
  2. Kalina
    Admin
    Kalina avatar
    918 posts

    Posted 16 Dec 2010 Link to this post

    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.

  3. Anumeha
    Anumeha avatar
    36 posts
    Member since:
    Aug 2010

    Posted 12 Jan 2011 Link to this post

    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

  4. Kalina
    Admin
    Kalina avatar
    918 posts

    Posted 19 Jan 2011 Link to this post

    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.
  5. IT Department
    IT Department avatar
    21 posts
    Member since:
    Apr 2007

    Posted 21 May 2013 Link to this post

    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.
  6. Ivan Zhekov
    Admin
    Ivan Zhekov avatar
    539 posts

    Posted 22 May 2013 Link to this post

    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.
  7. IT Department
    IT Department avatar
    21 posts
    Member since:
    Apr 2007

    Posted 23 May 2013 Link to this post

    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.
  8. Ivan Zhekov
    Admin
    Ivan Zhekov avatar
    539 posts

    Posted 28 May 2013 Link to this post

    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.
  9. IT Department
    IT Department avatar
    21 posts
    Member since:
    Apr 2007

    Posted 03 Jun 2013 Link to this post

    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?
  10. Ivan Zhekov
    Admin
    Ivan Zhekov avatar
    539 posts

    Posted 04 Jun 2013 Link to this post

    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.
  11. IT Department
    IT Department avatar
    21 posts
    Member since:
    Apr 2007

    Posted 12 Jun 2013 Link to this post

    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?
  12. Plamen
    Admin
    Plamen avatar
    2729 posts

    Posted 17 Jun 2013 Link to this post

    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.
Back to Top