除了在telerik FileExplorer的网格中,如何禁用contextmenu?

除了在telerik FileExplorer的网格中,如何禁用contextmenu?,telerik,Telerik,当我使用ContextMenus设置网格时,我试图禁用不必要的上下文菜单。默认情况下,如果单击网格的空白部分,则禁用删除菜单。 但是,在添加自定义菜单(如下载)后,即使没有选定的项目,它也会显示在上下文菜单中(即,如何下载?)。因此,我想禁用不必要的菜单或使其不可见,除非在网格行上下文菜单中 我正在使用telerik ASP.NET AJAX contorl 2009 Q2 提前感谢。这段代码应该会有所帮助-基本上您需要做的是在显示事件的菜单上附加一个处理程序,检查目标元素(右键单击的元素),如

当我使用ContextMenus设置网格时,我试图禁用不必要的上下文菜单。默认情况下,如果单击网格的空白部分,则禁用删除菜单。 但是,在添加自定义菜单(如下载)后,即使没有选定的项目,它也会显示在上下文菜单中(即,如何下载?)。因此,我想禁用不必要的菜单或使其不可见,除非在网格行上下文菜单中

我正在使用telerik ASP.NET AJAX contorl 2009 Q2


提前感谢。

这段代码应该会有所帮助-基本上您需要做的是在显示事件的菜单上附加一个处理程序,检查目标元素(右键单击的元素),如果它是网格区域本身,则禁用菜单项

<script type="text/javascript">
function OnClientLoad(explorer)
{
    explorer.get_gridContextMenu().add_showing(disableItem);
}
function disableItem(sender, args)
{
    var target = args.get_targetElement();
    if (target && target.className == "rgDataDiv")
    {
        var dlItem = sender.findItemByValue("download");
        dlItem.set_enabled(false);
    }
}</script><telerik:RadFileExplorer runat="server" ID="RadFileExplorer1" OnClientLoad="OnClientLoad"></telerik:RadFileExplorer>

客户端加载函数(资源管理器)
{
explorer.get_gridContextMenu().add_显示(disableItem);
}
函数禁用项(发送方,参数)
{
var target=args.get_targetElement();
if(target&&target.className==“rgDataDiv”)
{
var dlItem=sender.findItemByValue(“下载”);
dlItem.set_enabled(false);
}
}

很好的解决方案!但是,我仍然在标题上下文菜单中启用了项。您只需要在disableItem()函数中添加更多检查。此代码仅检查网格的空白区域。页眉/页脚是不同的项目,因此菜单项不会在那里被禁用,除非还有一些IFs:)