2009-07-23 4 views
1

Ich habe versucht, unnötiges Kontextmenü zu deaktivieren, wenn ich ein Raster mit ContextMenus einstelle. Wenn Sie auf den leeren Teil des Rasters klicken, wird standardmäßig das Menü Löschen deaktiviert.Wie deaktiviert man das Kontextmenü außer im Raster von Telerik FileExplorer?

Allerdings, nach dem Hinzufügen von benutzerdefinierten Menü wie Download, es zeigt im Kontextmenü sogar gibt es kein ausgewähltes Element (d. H., Wie kann ich es herunterladen?). Also möchte ich das unnötige Menü deaktivieren oder es unsichtbar machen, außer im Kontextmenü der Rasterzeile.

Ich verwende Telerik ASP.NET AJAX Contorl 2009 Q2.

Vielen Dank im Voraus.

Antwort

2

Dieses Stück Code sollte helfen - im Grunde, was Sie tun müssen, ist ein Handler an das Menü mit Ereignis anzuhängen, überprüfen Sie das Zielelement (das Element, mit dem Sie mit der rechten Maustaste geklickt) und wenn es der Rasterbereich selbst ist - deaktivieren der Menüpunkt.

<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> 
+0

Tolle Lösung! Ich habe jedoch noch im Kontextmenü des Headers den Eintrag aktiviert. – San

+0

Sie müssen nur noch einige Prüfungen in der Funktion disableItem() hinzufügen. Dieser Code überprüft nur den leeren Bereich des Rasters. Kopfzeile/Fußzeile sind unterschiedliche Elemente, so dass der Menüpunkt nicht deaktiviert wird, es sei denn, es gibt mehr IFs :) – lingvomir

Verwandte Themen