2010-06-24 3 views
1

Quelle est la meilleure façon de remplacer le texte par défaut et créer un "Visual Cue" lorsque vous faites glisser un nœud RadTreeView à un autre. J'ai commencé par:Telerik RadTreeView Drag N Drop Nodes

... 
telerik:RadTreeView OnClientNodeDragging="ClientNodeDragging" 
... 

function ClientNodeDragging(sender, args) 
{ 
    if (!visualClue) 
    { 
     visualClue = createVisualClue(); 
     document.body.insertBefore(visualClue, document.body.firstChild); 
    } 

    visualClue.style.left = args._domEvent.screenX + "px"; 
    visualClue.style.top = args._domEvent.screenY + "px"; 
} 

est le moyen d'aller sur l'affichage du texte à l'écran?

Actuellement, il est environ 20 px au-dessous du nœud déplaçable et le texte de déplacement existant (RadTreeView) s'affiche toujours (affiche le nom du texte de nœud - Je veux le supprimer ou le remplacer/masquer).

MISE À JOUR OK, je l'ai utilisé args._domEvent.clientX et .clientY maintenant. Fermer, mais maintenant j'ai besoin d'un moyen de supprimer le propre texte de RadTreevIew.

Répondre

2

I Géré pour trier en utilisant le débogueur IE (aurait pu utiliser n'importe quel autre débogueur) et remarqué que l'expéditeur a ce _draggingClue - BINGO !! Donc tout ce qui restait était de style comme ceci:

function ClientNodeDragging(sender, args) 
{ 
    var node = args.get_node(); 
    if (node.get_level() != 0) 
    { 
     var dom = args.get_domEvent(); 
     var div = sender._draggingClue; 
     var moveCopyText = "Copy"; 
     var hidden = document.getElementById("<%= MoveCopyHiddenField.ClientID %>"); 

     if (dom.shiftKey) { 
      hidden.value = "true"; 
      moveCopy = true; 
     } 
     else if (dom.ctrlKey) { 
      hidden.value = "false"; 
      moveCopy = false; 
     } 
     else { 
      hidden.value = "true"; 
      moveCopy = true; 
     } 

     if(moveCopy) 
      moveCopyText = "Move"; 
     else 
      moveCopyText = "Copy"; 

     div.className = "DragFile"; 
     div.style.height = '15px'; 
     div.style.paddingTop = '3px'; 
     div.innerHTML = moveCopyText + " " + node.get_text(); 
    } 
} 

Hope this helps quelqu'un et peut-être moi-même en tant de temps ans;)