2012-04-13 5 views
1

ich wie ein Panel erstellen müssenDragabale Text zu einem RadEditor

MY PANEL 

    Drag any of the items below into the editor: 

    CUSTOMER 
    BUSINESS_PHONE 
    BUSINESS_ADDRESS 

So aus Text beispielsweise aus, wenn diese in den Editor ziehen wird es in der folgenden Art und Weise hinzufügen

This is an example of how [[CUSTOMER]] has improved his business. 
You may contact them directly by dialing [[BUSINESS_PHONE]]. 

Es ist wie beim Erstellen einer Vorlage. Ich bin mir nur nicht sicher, was ich verwenden soll, um diese Arbeit zu machen. Wir benutzen einen RadEditor. Alle Vorschläge würden sehr geschätzt, bitte beachten Sie, dass wir den Editor nicht ändern können, da wir die Lösung in vielen verschiedenen Orten verwenden, wenn es eine Integration mit dem Editor gibt.

Vielen Dank

Antwort

2

ich etwas Ähnliches getan haben, was Sie zu erreichen sind versuchen, werden Sie einige Code zu dieser Instanz des RadEditor hinzufügen müssen, und zwar in einem gewissen Javascript in Ihre OnClientLoad Funktion hinzufügen das Ereignis abfangen und dann die Daten entsprechend behandeln. Der schwierige Teil besteht darin, die Cursorpositionierung beizubehalten, da Sie den HTML-Code analysieren müssen, sobald er nicht vorher gelöscht wurde.

Ich würde wirklich vorschlagen, wenn möglich, eine Einfüge-Taste und eine Liste/ein Objekt zu verwenden, die Sie auswählen können, klicken Sie auf die Schaltfläche und haben es am Cursor eingefügt, es ist viel einfacher zu implementieren.

Aber hier ist der Code ohne zu analysieren, wie ich das Drop-Ereignis an den Editor angehängt habe, ich benutze eine RadPanelBar, um Drag & Drop von. Dies wird sogar mit etwas Drag und Drop in den Editor ausgelöst werden, würde ich auch vorschlagen, eine Art Markup wie <span class="dragableItem">BusinessPhone</span>, dass Sie suchen können, wenn Sie Ihre Inhalte analysieren.

Wenn Sie Ihre Liste einfach machen [[BusinessPhone]] und Drag & Drop in das wäre natürlich die einfachste Lösung, obwohl nicht elegant.

function OnClientLoad(editor) 
{ 

    var element = document.all ? editor.get_document().body : editor.get_document(); 
    //var eventHandler = document.all ? "drop" : "dragdrop"; 
    var eventHandler = "drop"; 
    $telerik.addExternalHandler(element, eventHandler, function(e) { 
     setTimeout(function() { 
      contentDropped(editor); 
     }, 300); 
    }); 
//.... 
} 


function contentDropped(editor) 
{ 
    var content = editor.get_html(); 
    //parse the content of the editor 
    editor.set_html(content); 
} 
+0

Eigentlich sollte die Liste die Werte wie die Anzeigen haben [[Name]] etc .. das ist einfacher, denke ich .. – user710502

+0

Wenn das der Fall ist nur, dass in einem radPanelBar werfen itemlist und der Benutzer kann so ziemlich Drag und leg das direkt in den Editor und du bist fertig. –

Verwandte Themen