I have 3 context menus loaded into my RadTreeView. I associate different menus with my nodes depending on node level. I'm using the OnClientContextMenuItemClicking event to prompt for Delete confirmation when user clicks a delete context menu command. In my Client-side event handler, I want to determine which context menu was clicked so that I can hide just that menu. I've found one way, but it seems cumbersome and subject to change if Telerik changes ID naming conventions. Is there a better way to find the context menu that was clicked? Here is what I have working right now:
<script type="text/javascript">
function contextMenuItemClicking(sender, eventArgs) {
var item = eventArgs.get_menuItem();
if (item.get_text() == "Delete") {
if (!confirm("Confirm delete")) {
eventArgs.set_cancel(true);
for (var i = 0; i < sender.get_contextMenus().length; i++) {
if (sender.get_contextMenus()[i]._clientStateFieldID ==
eventArgs.get_node()._resolvedContextMenuID + "_ClientState") {
sender.get_contextMenus()[i].hide();
break;
}
}
}
}
}
(...)
<telerik:RadTreeView ID="radTreeMainView" Runat="server"
Height="420px"
Skin="Web20"
OnClientContextMenuItemClicking="contextMenuItemClicking"
oncontextmenuitemclick="radTreeMainView_ContextMenuItemClick"
>
</telerik:RadTreeView>