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

Error when all context menus are not visible

2 Answers 80 Views
TreeView
This is a migrated thread and some comments may be shown as answers.
Doron Yaacoby
Top achievements
Rank 1
Doron Yaacoby asked on 21 May 2009, 01:28 PM
Hi,
I have a page with a tree-view and two context menus that are not visible by default. When I select an item in the tree, I get a javascript error: 'Telerik.Web.UI.RadContextMenu is null or not an object'. I've fixed it for now by adding a "dummy" context-menu with no items in it (but with the Visible property set to 'true'), but I would like to know if there is a better solution.

Thanks.

2 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 26 May 2009, 11:40 AM
Hi Doron,

I guess you want not to show the RadContextMneu for some nodes of treeview. If so, better way to accomplish this is by canceling the event in OnClientContextMenuShowing method after checking the node that the context menu is being opened for.

ASPX:
 
<telerik:radtreeview id="RadTreeView1" runat="server" OnClientContextMenuShowing="ClientContextMenuShowing"
<ContextMenus> 
<telerik:RadTreeViewContextMenu ID="ContextMenu"
    <Items> 
        <telerik:RadMenuItem Text="Copy" Value="Copy"></telerik:RadMenuItem> 
        <telerik:RadMenuItem Text="Edit" Value="Edit"></telerik:RadMenuItem> 
    </Items> 
</telerik:RadTreeViewContextMenu> 
</ContextMenus> 
 
<Nodes> 
<telerik:RadTreeNode runat="server" Text="Peripherals"
<Nodes> 
    <telerik:RadTreeNode runat="server" Text="Printers"></telerik:RadTreeNode> 
    <telerik:RadTreeNode runat="server" Text="Scanners"></telerik:RadTreeNode> 
</Nodes> 
</telerik:RadTreeNode> 
</Nodes> 
</telerik:radtreeview> 

JavaScript:
 
<script type="text/javascript"
function ClientContextMenuShowing(sender, eventArgs) 
 var node = eventArgs.get_node();    
 var menu = eventArgs.get_menu();    
 if (node.get_text() == "Printers"
  {        
      eventArgs.set_cancel(true); 
  } 
</script> 
Note: eventArgs.set_cancel(true) will cancel the event and the contextmenu is not shown.

Thanks,
Shinu.
0
Veselin Vasilev
Telerik team
answered on 26 May 2009, 12:14 PM
Hi Doron,

in addition, instead of setting the Visible property to False of the context menus please use

RadTreeView1.ContextMenus.Clear();


Regards,
Veselin Vasilev
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Tags
TreeView
Asked by
Doron Yaacoby
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Veselin Vasilev
Telerik team
Share this question
or