1. 程式人生 > >ASP.NET整合UEditor獲取新聞內容及出錯解決

ASP.NET整合UEditor獲取新聞內容及出錯解決

一行代碼 destroy value blog 配置 text 有一個 復制 出錯

一、獲取內容

前臺加入代碼,在實例化編輯器那裏加入(這是我復制別人寫好的):

<script type="text/javascript">

        //實例化編輯器
        //建議使用工廠方法getEditor創建和引用編輯器實例,如果在某個閉包下引用該編輯器,直接調用UE.getEditor(‘editor‘)就能拿到相關的實例
        var ue = UE.getEditor(‘txtEditorContents‘);
        

        function isFocus(e) {
            alert(UE.getEditor(‘editor‘).isFocus());
            UE.dom.domUtils.preventDefault(e)
        }
        function setblur(e) {
            UE.getEditor(‘editor‘).blur();
            UE.dom.domUtils.preventDefault(e)
        }
        function insertHtml() {
            var value = prompt(‘插入html代碼‘, ‘‘);
            UE.getEditor(‘editor‘).execCommand(‘insertHtml‘, value)
        }
        function createEditor() {
            enableBtn();
            UE.getEditor(‘editor‘);
        }
        function getAllHtml() {
            alert(UE.getEditor(‘editor‘).getAllHtml())
        }
        function getContent() {
            var arr = [];
            arr.push("使用editor.getContent()方法可以獲得編輯器的內容");
            arr.push("內容為:");
            arr.push(UE.getEditor(‘editor‘).getContent());
            alert(arr.join("\n"));
        }
function getPlainTxt() { var arr = []; arr.push("使用editor.getPlainTxt()方法可以獲得編輯器的帶格式的純文本內容"); arr.push("內容為:"); arr.push(UE.getEditor(‘editor‘).getPlainTxt()); alert(arr.join(‘\n‘)) } function setContent(isAppendTo) { var arr = []; arr.push("使用editor.setContent(‘歡迎使用ueditor‘)方法可以設置編輯器的內容"); UE.getEditor(‘editor‘).setContent(‘歡迎使用ueditor‘, isAppendTo); alert(arr.join("\n")); } function setDisabled() { UE.getEditor(‘editor‘).setDisabled(‘fullscreen‘); disableBtn("enable"); } function setEnabled() { UE.getEditor(‘editor‘).setEnabled(); enableBtn(); } function getText() { //當你點擊按鈕時編輯區域已經失去了焦點,如果直接用getText將不會得到內容,所以要在選回來,然後取得內容 var range = UE.getEditor(‘editor‘).selection.getRange(); range.select(); var txt = UE.getEditor(‘editor‘).selection.getText(); alert(txt) } function getContentTxt() { var arr = []; arr.push("使用editor.getContentTxt()方法可以獲得編輯器的純文本內容"); arr.push("編輯器的純文本內容為:"); arr.push(UE.getEditor(‘editor‘).getContentTxt()); alert(arr.join("\n")); } function hasContent() { var arr = []; arr.push("使用editor.hasContents()方法判斷編輯器裏是否有內容"); arr.push("判斷結果為:"); arr.push(UE.getEditor(‘editor‘).hasContents()); alert(arr.join("\n")); } function setFocus() { UE.getEditor(‘editor‘).focus(); } function deleteEditor() { disableBtn(); UE.getEditor(‘editor‘).destroy(); } function disableBtn(str) { var div = document.getElementById(‘btns‘); var btns = UE.dom.domUtils.getElementsByTagName(div, "button"); for (var i = 0, btn; btn = btns[i++];) { if (btn.id == str) { UE.dom.domUtils.removeAttributes(btn, ["disabled"]); } else { btn.setAttribute("disabled", "true"); } } } function enableBtn() { var div = document.getElementById(‘btns‘); var btns = UE.dom.domUtils.getElementsByTagName(div, "button"); for (var i = 0, btn; btn = btns[i++];) { UE.dom.domUtils.removeAttributes(btn, ["disabled"]); } } function getLocalData() { alert(UE.getEditor(‘editor‘).execCommand("getlocaldata")); } function clearLocalData() { UE.getEditor(‘editor‘).execCommand("clearlocaldata"); alert("已清空草稿箱") } </script>

我只需要獲取編輯器裏的內容就行了,采用紅色的那段方法,而且這個編輯器把HTML的標簽,圖片路徑什麽的都自動生成好了,直接獲取就可以了,寫完了如下:

<!-- 加載編輯器的容器 -->
<script id="container" name="content" type="text/plain"></script>
<!-- 配置文件 -->
<script type="text/javascript" src="../edit/ueditor/ueditor.config.js"></script>
<!-- 編輯器源碼文件 -->
<script type="text/javascript" src="../edit/ueditor/ueditor.all.js"></script>
<!-- 實例化編輯器 -->
<script type="text/javascript">
  var ue = UE.getEditor(‘txtEditorContents
‘);   function getContent() {     var arr = [];     arr.push("使用editor.getContent()方法可以獲得編輯器的內容");     arr.push("內容為:");     arr.push(UE.getEditor(‘editor‘).getContent());     alert(arr.join("\n"));   } </script>

在頁面裏在創建一個Textbox,ID與上面紅色的一致,這個文本框放在編輯器的上邊就行。

<asp:TextBox ID="txtEditorContents" name="txtEditorContents" runat="server" Height="234px" TextMode="MultiLine" Width="450px" ClientIDMode="Static" >
</asp:TextBox>

而後進入後臺,有一個確認添加新聞的按鈕吧,加入點擊事件,看看能不能獲取到內容:

string s = this.txtEditorContents.Text;
Response.Write(s);

整了個字符串接收了一下文本框的內容,那個文本框就像是一個中轉站一樣。

加入斷點-F10進入調試-添加新聞-確定添加:發現出錯了,但是內容能看見獲取到了。

技術分享

解決這個錯誤,新建立的web窗體頁面最上邊會默認加入一行代碼:

<%@ Page Language="C#"  ValidateRequest="false" AutoEventWireup="true" CodeBehind="News.aspx.cs" Inherits="Appworld.AdminMe.News" %>

把標紅的那個寫進去就行了,再次調試,清晰可見,內容存進了變量裏,接著轉存數據庫即可。

ASP.NET整合UEditor獲取新聞內容及出錯解決