<%...@ Page Language="VB" AutoEventWireup="false" CodeFile="CuteEditor.aspx.vb" Inherits="_CuteEditor"%> <%...@ Register Assembly="CuteEditor" Namespace="CuteEditor" TagPrefix="CE"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>web3.cn——给CuteEditor5增加了高亮代码显示功能</title> <script language="JavaScript" type="text/javascript">... function ShowMyDialog(button) ...{ //use CuteEditor_GetEditor(elementinsidetheEditor) to get the cute editor instance var editor=CuteEditor_GetEditor(button); //show the dialog page , and pass the editor as newwin.dialogArguments var newwin=showModelessDialog("insertcode.aspx?_rand="+new Date().getTime() ,editor,"dialogWidth:600px;dialogHeight:430px"); } </script> </head> <body> <form id="form1" runat="server"> <div> <CE:Editor ID="Editor1" runat="server"> </CE:Editor> </div> </form> </body> </html>
在CuteEditor.aspx.vb的Page_Load事件下增加代码
ProtectedSub Page_Load()Sub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load Dim pos AsInteger pos = Editor1.ToolControls.IndexOf("Italic") +20 '图片位置(Themes/%ThemeName%/Images/csharp.gif) Dim ctrl As System.Web.UI.WebControls.WebControl ctrl = Editor1.CreateCommandButton("MyButton", "csharp.gif", "插入代码") ctrl.Attributes("onclick") ="ShowMyDialog(this)" '把按钮加入编辑器中 Editor1.InsertToolControl(pos, "MyButton", ctrl) End Sub
PartialClass insertcodeClass insertcode Inherits System.Web.UI.Page ProtectedSub Page_Load()Sub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load Response.Expires =-1 IfNot IsPostBack Then Dim key AsString Dim config As ActiproSoftware.CodeHighlighter.CodeHighlighterConfiguration =CType(System.Configuration.ConfigurationManager.GetSection("codeHighlighter"), ActiproSoftware.CodeHighlighter.CodeHighlighterConfiguration) ForEach key In config.LanguageConfigs.Keys LanguageDropDownList.Items.Add(key) Next key EndIf End Sub ProtectedSub HighlightButton_Click()Sub HighlightButton_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles HighlightButton.Click '设置代码的语言 Codehighlighter1.LanguageKey = LanguageDropDownList.SelectedItem.Text Codehighlighter1.OutliningEnabled =True Codehighlighter1.Text = CodeTextBox.Text '允许代码折叠 Codehighlighter1.OutliningEnabled = OutliningEnabledCheckBox.Checked '显示行号 Codehighlighter1.LineNumberMarginVisible = LineNumberMarginVisibleCheckBox.Checked End Sub PublicSub CodeHighlighter_PostRender()Sub CodeHighlighter_PostRender(ByVal sender AsObject, ByVal e As System.EventArgs) If IsPostBack Then Dim html AsString= Codehighlighter1.Output html = html.Replace(vbCr & vbLf, "<br />") Dim divstr AsString="<div style='BORDER-RIGHT: windowtext 0.5pt solid;PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px;PADDING-TOP: 4px;BORDER-LEFT: windowtext 0.5pt solid;WIDTH: 98%; BORDER-BOTTOM: windowtext 0.5pt solid;word-break:break-all'>" html = divstr & html &"</div>" Dim sb As System.Text.StringBuilder =New System.Text.StringBuilder() sb.Append("<") sb.Append("script") sb.Append(">") sb.Append("var editor=window.dialogArguments;editor.ExecCommand('PasteHTML',false,'"& html &"');window.close();") sb.Append("<") sb.Append("/") sb.Append("script") sb.Append(">") ScriptOutPut.InnerHtml = sb.ToString() EndIf End Sub End Class