广告位联系
返回顶部
分享到

C#实现将TextBox绑定为KindEditor富文本

C#教程 来源:互联网 作者:佚名 发布时间:2024-04-17 22:11:45 人浏览
摘要

关于KindEditor KindEditor 基于JavaScript 编写,可以与众多WEB应用程序结合。KindEditor 依靠出色的用户体验和领先的技术提供富文本编辑功能,是一款非常受欢迎的HTML在线编辑器。其呈现如下图: 绑

关于 KindEditor

KindEditor 基于JavaScript 编写,可以与众多WEB应用程序结合。KindEditor 依靠出色的用户体验和领先的技术提供富文本编辑功能,是一款非常受欢迎的HTML在线编辑器。其呈现如下图:

绑定设计

Asp.net 应用程序 WebUI 中的 TextBox 控件是我们经常使用的控件之一,为便于后端代码统计一调用与管理,可在服务端通过绑定 KindEditor.js 的方式,将 TextBox 控件直接转化为富文本编辑框,调用示例代码如下:

1

2

KindEditor KindEditor = new KindEditor(Page);

KindEditor.init(new string[] { x_fbnr.ID });

创建 KindEditor 类,通过 init 方法初始化即可。

init方法提供了一个参数,string[] 数组,传递要转化的 TextBox 的 ID,并且可以同时传递 Page 页面上的 多个 ID ,以转化多个 TextBox。

实现代码

创建KindEditor类,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

public class KindEditor

            {

                Page CurrentPage = null;

                public KindEditor(object page)

                {

                    if (page == null)

                    {

                        return;

                    }

                    CurrentPage = (Page)page;

                }

                public string init(string[] idList)

                {

                    return init(idList, null);

                }

                public string init(string[] idList,Literal writeControl)

                {

  

                    HtmlLink cssLink = new HtmlLink();

                    cssLink.Attributes.Add("rel", "stylesheet");

                    cssLink.Href = "/common/kindEditor/themes/default/default.css";

                    CurrentPage.Header.Controls.Add(cssLink);

  

                    HtmlLink cssLink2 = new HtmlLink();

                     

                    cssLink2.Attributes.Add("rel", "stylesheet");

                    cssLink2.Href = "/common/kindEditor/plugins/code/prettify.css";

                    CurrentPage.Page.Header.Controls.Add(cssLink2);

  

  

                    HtmlGenericControl sc = new HtmlGenericControl("script");

                    sc.Attributes.Add("charset", "uft-8");

                    sc.Attributes.Add("src", "/common/kindEditor/kindeditor.js");

                     

  

                    CurrentPage.Page.Header.Controls.Add(sc);

  

                    HtmlGenericControl sc2 = new HtmlGenericControl("script");

                    sc2.Attributes.Add("charset", "uft-8");

                    sc2.Attributes.Add("src", "/common/kindEditor/lang/zh_CN.js");

                    CurrentPage.Page.Header.Controls.Add(sc2);

  

                    HtmlGenericControl sc3 = new HtmlGenericControl("script");

                    sc3.Attributes.Add("charset", "uft-8");

                    sc3.Attributes.Add("src", "/common/kindEditor/plugins/code/prettify.js");

                    CurrentPage.Page.Header.Controls.Add(sc3);

  

                    string js = fLoadFromFile(CurrentPage.Request.PhysicalApplicationPath + "common/kindEditor/init.js", Encoding.Default);

  

                    HtmlGenericControl sc4 = new HtmlGenericControl("script");

                    foreach (string id in idList)

                    {

                        sc4.InnerHtml += js.Replace("{0}", id);

                    }

                    CurrentPage.Page.Header.Controls.Add(sc4);

                    return "";

                }

                public string LoadFromFile(string PathFile,System.Text.Encoding encodtype)

                {

                    FileStream fs;

                    StreamReader newsfile;

                    String linec,x_filecon="";

                    fs=new FileStream(PathFile,FileMode.Open);

                    newsfile=new StreamReader(fs,encodtype);

                    try

                    {

                        linec=newsfile.ReadLine();

         

                        while(!(linec==null))

                        {

                            x_filecon+=linec+"\r\n";

                            linec=newsfile.ReadLine();

                        }

                        newsfile.Close();

                        fs.Close();

                    }

                    catch(Exception)

                    {

                        newsfile.Close();

                        fs.Close();

                    }

                    finally

                    {

                        newsfile.Close();

                        fs.Close();

                    }

                    return x_filecon;

  

                }//LoadFromFile Function

  

            }

创建类时请务必传递 Page类的实例化(即System.Web.UI.Page),而且 header 部分请务必添加 RunAt="server" 标记,如下代码示例:

1

2

3

4

5

6

7

<html>

   <head runat="server">

   </head>

  

....

  

</html>

init 方法会在服务器header对象重点引入如下文件并进行动态添加:

序号 文件 控件类型
1 /common/kindEditor/themes/default/default.css HtmlLink
2 /common/kindEditor/plugins/code/prettify.css HtmlLink
3 /common/kindEditor/kindeditor.js HtmlGenericControl
4 /common/kindEditor/lang/zh_CN.js HtmlGenericControl
5 /common/kindEditor/plugins/code/prettify.js HtmlGenericControl
6 /common/kindEditor/init.js HtmlGenericControl

其中第6项 init.js 为读取内容后,替换传入的对应 id ,并动态添加 header 中。 

小结

kindEditor在某些浏览器上在工具栏点击弹出类框有时会出现一些兼容性问题,无法正确定位显示位置而无法使用,可试图通过个点击全屏按钮暂时解决,如下图:


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • C#实现给图片添加文字水印

    C#实现给图片添加文字水印
    在某些应用项目(如电子档案信息管理)中,查看电子图片信息是经常使用到的功能,此时我们就需要给显示在浏览器中的图片添加文字水
  • C#实现将TextBox绑定为KindEditor富文本

    C#实现将TextBox绑定为KindEditor富文本
    关于KindEditor KindEditor 基于JavaScript 编写,可以与众多WEB应用程序结合。KindEditor 依靠出色的用户体验和领先的技术提供富文本编辑功能,是一
  • C# WPF编程之元素绑定介绍

    C# WPF编程之元素绑定介绍
    数据绑定是一种关系,该关系告诉WPF从源对象提取一下信息,并用这些信息设置目标对象的属性。目标属性始终是依赖项属性,通常位于W
  • QT升级6.0以上版本遇到问题以及解决方法
    最近重装QT的时候发现QT已经升级到了6.0以上的新版本。既然是重装,那就跟进新的更新。更新新的QT后以前的旧版本建立的工程,自然会出
  • C#实现窗体换肤的教程方法

    C#实现窗体换肤的教程方法
    实践过程 效果 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 5
  • C#递归应用之实现JS文件的自动引用介绍

    C#递归应用之实现JS文件的自动引用介绍
    两张表,分别是 :sys_tbl,和 sys_field,其中:sys_tbl 是系统所有表的信息,包含两个字段 :code(表名),name(表描述信息);sys_fld 是记录第张
  • C#纯技术之Class写入Json介绍

    C#纯技术之Class写入Json介绍
    C# Class写入Json 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 /// summary /// 写入json文件 /// /summary /// param name=obj/param /// param name=save
  • C#实体类转换的两种方式总结
    C#实体类转换方式 将一个实体类的数据赋值到另一个实体类中(亦或者实现深拷贝)。 以下提供两种方式 一种是序列化 一种是泛型+反射
  • C#中的时间显示格式(12小时制VS24小时制)介绍
    C#时间显示格式 一起看下: 24小时制 1 this.toolStripStatusLabel1.Text = 您好,欢迎来到XXXX控制系统! + 当前时间: + DateTime.Now.ToString(yyyy-MM-dd HH
  • C#中使用Spire.doc对word的操作方式介绍

    C#中使用Spire.doc对word的操作方式介绍
    使用Spire.doc对word的操作 在最近的工程中我们要处理一些word文档。通过在网上的大量搜索,我发现大多数软件功能不是不完整就是有重复。
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计