CKEDitor를 ASP.NET에 통합합니다
-
14-12-2019 - |
문제
현재 웹 사이트에 대한 CMS를 구현하는 데 노력하고 있습니다.JavaScript, JQuery, C # 등을 사용하여 매우 최소한의 경험이 있습니다. 주로 Java, SQL 및 C ++을 처리합니다.내 질문은 페이지에로드 된 CKEDitor 인스턴스가 있습니다.내 데이터베이스에 저장된 HTML을 CKEDitor 창에로드 할 수는 있지만 CKEDitor에서 다시 변경 한 값을 얻을 수 없습니다.
default.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>
.
default.aspx.cs
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);
}
}
.
SAVEBUTTON_CLICK 메소드에서 데이터베이스에 쓰고 있음을 테스트하고 알고 있습니다.내가 알아 차리는 한 가지는 경고 ( "메시지")와 같은 정적 경고 메시지를 표시 할 수 있다는 것입니다.그러나 경고 창은 내 코드의 행 중 하나가 모두 팝업되지 않습니다. 클래스 구조를 사용하여 데이터베이스를 작성하거나 일하기 위해 GetContents ()를 얻을 수 있도록 모든 도움이 될 수 있도록이 설정을 수행 할 수 있습니다.
해결책
Page_load의
if (!Page.IsPostBack)
컨트롤의 Text
속성을 기록하기 전에 CKEditor
를 선택해야합니다. 그렇지 않으면 모든 게시물 (즉, 버튼 클릭)에서 컨트롤에 데이터베이스와 동일한 값이 있습니다.-
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);
}
}
}
. 제휴하지 않습니다 StackOverflow