telerik radmenu在行动后取消回发

时间:2012-10-17 19:09:59

标签: javascript telerik client-side radmenu

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

这是菜单:

<telerik:RadMenu ID="radMnu1" runat="server" ClickToOpen="true" OnClientItemClicked="MenuItemClicked" OnClientItemClicking="MenuItemClickingCancelPostback">
   <Items>...
   </Items>
</telerik:RadMenuItem>

以下是JS方法:

function MenuItemClicked(sender, args) {
        var itemValue = args.get_item().get_value();

        var menu = $find("ctl00_radMnu1");
        var menuItem = menu.findItemByText(itemText);
        if (menuItem) menuItem.open();
        }
    }

    function MenuItemClickingCancelPostback(sender, args) {
        args.set_cancel(true); // Cancel the postback 
    }

问题是,如果我启用OnItemClicking事件,它会执行它,取消回发然后永远不会进入OnItemClicked(因为回发被取消)。如果我禁用OnItemClicking,它会触发OnItemClicked并正确打开菜单,但随后也会进行回发。

如何同时打开菜单和回复取消?不知何故,我需要执行这两个事件。我会取消OnItemClicked事件的回发,但是set_cancel()在它的args中不可用。

谢谢,

1 个答案:

答案 0 :(得分:0)

请使用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 
}