2016-04-06 15 views
2

Ich arbeite derzeit an einem Projekt, das HtmlEditorExtender benötigt. In letzter Zeit hatte ich mit dem HtmlEditorExtender ein Problem mit dem Thema "Weid".
Wenn ich Texte eintippe und auf den Button Speichern klicke. Alles funktioniert gut. Aber wenn ich kopiere & Paste Texte (kurze oder Absätze). Der HtmlEditorExtender verliert seinen Wert und die Daten werden nicht gespeichert. Allerdings habe ich das gleiche mit normalen Textfeldern versucht. Aber ich habe kein Problem mit ihnen gefunden. Mein Code sieht in etwa wie folgt aus: Default.aspx:Postback-Problem mit HtmlEditorExtender

<asp:UpdatePanel runat="server" ID="id123"> 
<Triggers> 
<asp:PostBackTrigger ControlID="Button1" /> 
</Triggers> 
<ContentTemplate> 

<asp:TextBox ID="txtSlidePage" TextMode="MultiLine" Columns="50" Rows="10" Width="100%" Height="200" runat="server" /> 

<ajaxToolkit:HtmlEditorExtender ID="HtmlEditorExtender1" TargetControlID="txtSlidePage" runat="server" DisplaySourceTab="true"> 
<Toolbar> 
<ajaxToolkit:Undo /> 
<ajaxToolkit:Redo /> 
</Toolbar> 
</ajaxToolkit:HtmlEditorExtender> 

</ContentTemplate> 
</asp:UpdatePanel> 
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click1" /> 

-Code hinter:

protected void Button1_Click1(object sender, EventArgs e) 
{ 
Response.Write("<script>alert('" + txtSlidePage.Text + "');</script>"); 
} 

ich den Code kurz gehalten habe. nur um das Ergebnis via Javascript Alert zu sehen.

Irgendwelche Vorschläge?

+1

haben Sie versucht, den Inhalt des Editors zu speichern und abzurufen? – reaz

+0

Ja, aber es war dasselbe. Wie schon erwähnt, ist bei normalen Textboxen alles in Ordnung. aber mit diesem HTML-Editor-Extender. Der Inhalt wird auf den Post zurückgesetzt, wenn der Text kopiert und eingefügt wird. –

Antwort

2

Ich empfehle dringend, CKEditor zu verwenden. Ich benutze es ohne Probleme und es hat eine einfach zu bedienende Kontrolle für asp.net. Der Prozess der HTML-Codierung und -Dekodierung ist ebenfalls einfach. auf diesen Link verweisen für demo

können Sie auch ganz einfach benutzerdefinierte Symbolleisten wie unten gezeigt:

<CKEditor:CKEditorControl ID="txtSlideTexts" BasePath="/ckeditor/" runat="server" Toolbar="Basic" 
    ToolbarBasic="|Bold|Italic|Underline|Strike|-|NumberedList|BulletedList|Outdent|Indent|-|JustifyLeft|JustifyCenter|JustifyRight|JustifyBlock| 
    |Link|Unlink|-|TextColor|-|Undo|Redo|Cut|Copy|Paste|PasteText|PasteFromWord| 
    |Find|Replace|SelectAll|-|Image|Table|HorizontalRule|SpecialChar|-|Format|" ></CKEditor:CKEditorControl> 

Und schließlich in Code hinter:

string str = CKEditor1.Text; 
string str1 = Server.HtmlEncode(str); 
string str2 = Server.HtmlDecode(str); 

Da es sich um eine serverseitige Kontrolle. Sie werden keine Schwierigkeiten bei der Seitenrücksendung haben.

+0

Vielen Dank, aber die Demo in dem von Ihnen gesendeten Link zeigt keine Symbolleisten an. Fehle ich etwas? –

+1

Fügen Sie es Ihrem Projekt hinzu. Bitte folgen Sie den oben genannten Schritten. – reaz

+0

Ja, es funktioniert! :) –