Frage

Ich arbeite derzeit an der Implementierung eines CMS für eine Website.Ich habe sehr wenig Erfahrung mit Javascript, jQuery, C # usw.Ich beschäftige mich hauptsächlich mit Java, SQL und C ++.Meine Frage ist, dass ich die CKEditor-Instanz auf die Seite geladen habe.Ich kann den in meiner Datenbank gespeicherten HTML-Code in das CKEditor-Fenster laden, aber ich kann die von mir geänderten Werte nicht aus CKEditor zurückholen.

Standard.aspx

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="CKEditor.NET" Namespace="CKEditor.NET" TagPrefix="CKEditor" %>

<asp:Content ID="Head1" runat="server" ContentPlaceHolderID="head" >
<%--Javascript funciton for Display Contents button--%>
<script type="text/javascript">
    function GetContents() {
        // Display the value of CKEditor into an alert
        alert(CKEDITOR.instances.CKEditor1.getData());
        //Have also tried alert(CKEDITOR.instances[CKEditor1].getData());
    }
</script>
</asp:Content>
<asp:Content ID="form1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
<CKEditor:CKEditorControl ID="CKEditor1" runat="server">
</CKEditor:CKEditorControl>
<%--Button that executes the command to store updated data into database--%>
<asp:Button ID="SaveButton" runat="server" Text="Save Changes" 
    onclick="SaveButton_Click" />
<button type="button" onclick="GetContents()">Display Contents</button>

</asp:Content>

Standard.aspx.ks

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //Retrieve HTML
        HomePageHTML hp = HomePageHTMLAccess.GetHomPageHTML();
        //Does HTML exist?
        if (hp.HTML != null)
        {
            PopulateControls(hp);
        }
     }

    //Method to load html from database into webpage
    private void PopulateControls(HomePageHTML hp)
    {
        //Display html
        CKEditor1.Text = hp.HTML;

    }
    //Method to save the updated html into the database
    protected void SaveButton_Click(object sender, EventArgs e)
    {
        string text1 = CKEditor1.Text;
        HomePageHTMLAccess.UpdateHomePageHTML(text1);
    }
}

Ich habe getestet und weiß, dass ich mit der SaveButton_Click-Methode in die Datenbank schreibe.Eine Sache, die mir aufgefallen ist, ist, dass ich eine statische Warnmeldung anzeigen kann, z. B. alert("message");es wird jedoch überhaupt kein Warnfenster mit einer der Zeilen in meinem Code angezeigt.Jede Hilfe bei der Einrichtung dieser Einrichtung, damit ich entweder mithilfe der Klassenstruktur in meine Datenbank schreiben oder einfach nur getContents () zum Laufen bringen kann, wäre sehr dankbar.

War es hilfreich?

Lösung

In Page_Load sollten Sie überprüfen if (!Page.IsPostBack) vor dem Schreiben der Text eigentum der CKEditor kontrolle, sonst, bei jedem Beitrag zurück (dh.klicken Sie auf die Schaltfläche), hat das Steuerelement denselben Wert aus der Datenbank.–

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            //Retrieve HTML
            HomePageHTML hp = HomePageHTMLAccess.GetHomPageHTML();
           //Does HTML exist?
           if (hp.HTML != null)
           {
              PopulateControls(hp);
           }
        }
     }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top