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

RadMenu Click event not fired inside RadTab

4 Answers 90 Views
Menu
This is a migrated thread and some comments may be shown as answers.
sudhakar
Top achievements
Rank 1
sudhakar asked on 22 Jul 2010, 03:42 AM
Hello Telerik Team,

Please help, i am struggling to find the click event fired on any of the menus. No matter what i do the event is not fired.
The menus are inside the tab. tried creating the object and using "FinditembyText"  but not working....

Please look for below code.  and
if at all someone can give me solution for this
*********************
Start Aspx Code
**********************
<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <telerik:RadTabStrip ID="RadTabStrip1" runat="server" Skin="Office2007">   
            <Tabs>  
                 <telerik:RadTab runat="server" Text="Root RadTab2">   
                     <Tabs>  
                         <telerik:RadTab runat="server" Text="Child RadTab 1">   
                         <TabTemplate>  
                            <telerik:RadMenu ID="RadMenu2" runat="server" Skin="Office2007" OnItemClick="RadMenu1_ItemClick" OnItemDataBound="RadMenu1_ItemDataBound">
                                <CollapseAnimation Duration="200" Type="OutQuint" />  
                                 <Items>  
                                     <telerik:RadMenuItem Text="SomeMenuTest" >   
                                         <Items>  
                                             <telerik:RadMenuItem Text="Test1" NavigateUrl="http://www.google.com" />  
                                             <telerik:RadMenuItem Text="Test2" NavigateUrl="http://www.yahoo.com"/>  
                                             <telerik:RadMenuItem Text="Test3"  NavigateUrl="http://www.dbs.com"/>  
                                             <telerik:RadMenuItem Text="Test4"  NavigateUrl="http://www.asia1.com"/>  
                                         </Items>  
                                     </telerik:RadMenuItem>  
                                 </Items>  
                             </telerik:RadMenu>  
                         </TabTemplate>  
                         </telerik:RadTab>  
                         <telerik:RadTab runat="server" Text="Child RadTab 2">   
                         </telerik:RadTab>  
                     </Tabs>  
                 </telerik:RadTab>  
                   
             </Tabs>  
         </telerik:RadTabStrip>  
    </form>
*********************
End Aspx Code
**********************
  
*********************
Codebehind
*********************
  
protected void RadMenu1_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
    {
        Response.Redirect(e.Item.Attributes["NavigateUrl"].ToString());
    }
  
   protected void RadMenu1_ItemDataBound(object sender, RadMenuEventArgs e)
   {
       e.Item.Attributes["NavigateUrl"] = e.Item.NavigateUrl;
       e.Item.NavigateUrl = "";
   }

4 Answers, 1 is accepted

Sort by
0
Yana
Telerik team
answered on 22 Jul 2010, 07:42 AM
Hello sudhakar,

Please check this help article for more information about this issue.

All the best,
Yana
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
sudhakar
Top achievements
Rank 1
answered on 22 Jul 2010, 07:50 AM
Hello Yana,

Thankyou for the reply. But if you see the code the RadMenu is inside the Radtab, becuase of which it doesn't get fired.

As a normal way if i copy the example you have given, it works but as soon as i put a tab above the same example it will not fire the event .. Jut try with RadTab.

Any help will be appreciated.

Regards
Sudhakar
0
Yana
Telerik team
answered on 27 Jul 2010, 04:36 PM
Hello sudhakar,

The problem with your code is that ItemDataBound event is not fired at all - generally this event is fired only when the menu is databound, so the items still have NavigateUrl set. You can work-around it like this:

<telerik:RadTabStrip ID="RadTabStrip1" runat="server" Skin="Office2007" SelectedIndex="0">
    <Tabs>
        <telerik:RadTab runat="server" Text="Root RadTab2" Selected="True" SelectedIndex="0">
            <Tabs>
                <telerik:RadTab runat="server" Text="Child RadTab 1" Value="tabWithMenu" Selected="True">
                    <TabTemplate>
                        <telerik:RadMenu ID="RadMenu2" runat="server" Skin="Office2007" OnItemClick="RadMenu1_ItemClick"
                            OnItemDataBound="RadMenu1_ItemDataBound">
                            <CollapseAnimation Duration="200" Type="OutQuint" />
                            <Items>
                                <telerik:RadMenuItem Text="SomeMenuTest">
                                    <Items>
                                        <telerik:RadMenuItem Text="Test1" />
                                        <telerik:RadMenuItem Text="Test2" NavigateUrl="http://www.yahoo.com" />
                                        <telerik:RadMenuItem Text="Test3" NavigateUrl="http://www.dbs.com" />
                                        <telerik:RadMenuItem Text="Test4" NavigateUrl="http://www.asia1.com" />
                                    </Items>
                                </telerik:RadMenuItem>
                            </Items>
                        </telerik:RadMenu>
                    </TabTemplate>
                </telerik:RadTab>
                <telerik:RadTab runat="server" Text="Child RadTab 2">
                </telerik:RadTab>
            </Tabs>
        </telerik:RadTab>
    </Tabs>
</telerik:RadTabStrip>

and then find the menu in Page_Load event:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        RadMenu menu = (RadMenu)RadTabStrip1.FindTabByValue("tabWithMenu").FindControl("RadMenu2");
        foreach (RadMenuItem item in menu.GetAllItems())
        {
            if (item.NavigateUrl != "")
            {
                item.Attributes["NavigateUrl"] = item.NavigateUrl;
                item.NavigateUrl = "";
            }
        }
    }
}

Hope this helps.

All the best,
Yana
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
sudhakar
Top achievements
Rank 1
answered on 29 Jul 2010, 10:40 AM
Hello Yana,

Thankyou for the reply and given code.
It works...!!!

Regards
Sudhakar
Tags
Menu
Asked by
sudhakar
Top achievements
Rank 1
Answers by
Yana
Telerik team
sudhakar
Top achievements
Rank 1
Share this question
or