Javascript telerik radmenu操作后取消回发

Javascript telerik radmenu操作后取消回发,javascript,telerik,client-side,radmenu,Javascript,Telerik,Client Side,Radmenu,我有一个radmenu(Telerik控件),当点击它时,它应该做两件事:1。打开菜单,2。取消回发 这是菜单: <telerik:RadMenu ID="radMnu1" runat="server" ClickToOpen="true" OnClientItemClicked="MenuItemClicked" OnClientItemClicking="MenuItemClickingCancelPostback"> <Items>... </It

我有一个radmenu(Telerik控件),当点击它时,它应该做两件事:1。打开菜单,2。取消回发

这是菜单:

<telerik:RadMenu ID="radMnu1" runat="server" ClickToOpen="true" OnClientItemClicked="MenuItemClicked" OnClientItemClicking="MenuItemClickingCancelPostback">
   <Items>...
   </Items>
</telerik:RadMenuItem>
问题是,如果我启用OnItemClicking事件,它会执行它,取消回发,然后再也不会进入OnItemClicked(因为回发已取消)。如果禁用OnItemClicking,它将启动OnItemClicked并正确打开菜单,但也会执行回发

我怎样才能同时打开菜单和取消回发?不知何故,我需要执行这两个事件。我将取消OnItemClicked事件的回发,但set_cancel()在其参数中不可用


谢谢,

请注意,使用OnItemClick的代码肯定会起作用, 像这样

function MenuItemClickingCancelPostback(sender, args) {       
    // first open the menu then cancel the postback.
    var menu = $find("ctl00_radMnu1");
    var menuItem = menu.findItemByText(itemText);
    if (menuItem) menuItem.open();
    args.set_cancel(true); // Cancel the postback 
}

为什么两个操作都不使用ItemClicking事件?顺便说一句,您不需要在菜单客户端事件中调用
$find
方法,因为您已经从发送方参数中调用了该方法。另外,为什么不使用
postback
菜单项属性阻止回发?你的第一个评论成功了,请写下来作为答案,这样我可以给学分
function MenuItemClickingCancelPostback(sender, args) {       
    // first open the menu then cancel the postback.
    var menu = $find("ctl00_radMnu1");
    var menuItem = menu.findItemByText(itemText);
    if (menuItem) menuItem.open();
    args.set_cancel(true); // Cancel the postback 
}