Javascript 将CKEditor集成到ASP.NET中
我目前正在为一个网站实施CMS。我使用JavaScript、jQuery、C++等的经验非常少,我主要处理java、SQL和C++。我的问题是我在页面上加载了CKEditor实例。我可以将存储在数据库中的HTML加载到CKEditor窗口中,但无法从CKEditor中获取已更改的值 Default.aspxJavascript 将CKEditor集成到ASP.NET中,javascript,asp.net,ckeditor,dom-events,ckeditor.net,Javascript,Asp.net,Ckeditor,Dom Events,Ckeditor.net,我目前正在为一个网站实施CMS。我使用JavaScript、jQuery、C++等的经验非常少,我主要处理java、SQL和C++。我的问题是我在页面上加载了CKEditor实例。我可以将存储在数据库中的HTML加载到CKEditor窗口中,但无法从CKEditor中获取已更改的值 Default.aspx <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.mas
<%@ 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>
我已经测试并知道我正在通过SaveButton\u Click
方法写入数据库。我注意到的一点是,我可以显示静态警报消息,例如警报(“消息”)代码>但没有弹出任何警报窗口,显示代码中的任何一行
如果您能帮助我设置此设置,以便我可以使用类结构写入数据库,或者让GetContents()
正常工作,我将不胜感激。在Page\u Load中,在编写CKEditor
控件的Text
属性之前,您应该检查if(!Page.IsPostBack)
,否则,在每次回发(即单击按钮)时,控件将具有来自数据库的相同值
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);
}
}
}
在页面加载中,在写入CKEditor
控件的Text
属性之前,应检查if(!Page.IsPostBack)
,否则,在每次回发(即单击按钮)时,该控件将具有来自数据库的相同值
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);
}
}
}
非常感谢你,阿德里安,它很有魅力。如果其他任何人在SaveButton_Click方法中遇到此问题,请添加一个不带感叹号的if(Page.IsPostBack),并关闭其中的所有代码,它就会工作。@tuckerjt07,在SaveButton_Click上,Page.IsPostBack将始终为真(页面通过按钮单击发回,有意义吗?)。另外,请接受答案。这是我的想法,但由于某种原因,在我把if语句放进去之前,它不会起作用。!Page.IsPostBack
这意味着您是第一次进入页面的,如果在页面加载处理程序中写入控件,则只能第一次加载。非常感谢Adrian,它非常有效。如果其他任何人在SaveButton_Click方法中遇到此问题,请添加一个不带感叹号的if(Page.IsPostBack),并关闭其中的所有代码,它就会工作。@tuckerjt07,在SaveButton_Click上,Page.IsPostBack将始终为真(页面通过按钮单击发回,有意义吗?)。另外,请接受答案。这是我的想法,但由于某种原因,在我把if语句放进去之前,它不会起作用。!Page.IsPostBack
这意味着您第一次输入页面,如果在页面加载处理程序中写入控件,则只能第一次加载。