我正试图使我的RadContextMenu在使用左键单击时保持打开状态。它可以在我使用鼠标右键单击时找到,因为这是默认的,但我也想在右键单击后打开上下文菜单,它一打开就立即关闭。
布局
<telerik:RadButton ID="btnGenerate" runat="server"
Text="Generate..." ToolTip="Click to generate the tracking/tags/preview for the current creative"
OnClientClicked="generateMenuItemOnLeftClick">
</telerik:RadButton>
<telerik:RadContextMenu ID="cmGenerate" runat="server" Flow="Horizontal"
OnItemClick="cmGenerate_ItemClick" OnClientItemClicking="generateMenuItemClicking">
<Items>
<telerik:RadMenuItem runat="server" Text="Generate Tracking" Value="generateTracking" />
<telerik:RadMenuItem runat="server" Text="Generate Preview" Value="generatePreview" />
<telerik:RadMenuItem runat="server" Text="Generate Tags" Value="generateTags" />
</Items>
<Targets>
<telerik:ContextMenuControlTarget ControlID="btnGenerate" />
</Targets>
</telerik:RadContextMenu>
JS
function generateMenuItemOnLeftClick(sender, eventArgs) {
var currentLocation = $telerik.getLocation(sender.get_element());
var contextMenu = $find("<%=cmGenerate.ClientID%>");
contextMenu.showAt(currentLocation.x, currentLocation.y + 22);
}
这是为其他有相同问题的人准备的。我发现你必须打电话给
$telerik.cancelRawEvent(event);
就在showAt(..)方法之后。这将取消即时关闭的默认行为。