kindeditor的afterChange(asp.net应用)

需要在页面上使用文本在线编辑器,找到了kindeditor这款,不多说,按照提供的示例使用。

先来看对应的aspx页面对应的部分,代码截图如下:

image

用的DetailsView控件,采用了母版页。先引入脚本文件:

<script src="../kindeditor/kindeditor-min.js" type="text/javascript"></script>
<script type="text/javascript">
    KE.show({id:'txtBody'});       
</script>

这种写法,运行后实际没有看到在线编辑器,因为服务器端的控件其对应的客户端ID会自动改变,所以需要用属性ClientID。

KE.show({ id: '<%=TextBox1.ClientID %>' });

运行时,提示错误:当前上下文中不存在名称“txtBody”

实际上在cs代码中也是无法访问该控件,因为它是DetailsView里面的控件。

结合一下jquery强大的选择器,就很容器找到了。注意看第一张图:增加了一个自定义的属性:attr=body(这个可以随意怎么写)。

先引入jquery脚本。

<script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>

var id = $(":input[attr='body']").attr('id');alert(id);看截图:

image

最后:统一如下:

$(function () {
             var id = $(":input[attr='body']").attr('id');
             KE.show({id:id});
         });

由于DetailSView数据后台自动绑定的,当我们单击[更新]CommandButton后,发现正文部分并没有修改成功

image

查看对应的源代码:

<input type="button" name="button" value="取得HTML" οnclick="javascript:alert(KE.html('content1'));" />

 

断点追踪一下:

image

发现:浏览器虽然改变了原正文部分的内容,但是提交更新后,发现这里txtBody.Text仍然是修改前的内容,出现了问题!

没办法,<山穷水复疑无路>。看示例:

image

查看源代码:

image

afterChange:事件,太好了,这里把浏览器改动的文本传回给textBody对应的客户端控件,说改就改:

image

再次运行,断点处发现txtBody的文本已经改变,ok,测试成功!清除这些调试代码,运行一样正常!^_^

当然,我们发现KE.$也是选择器,有兴趣的朋友如果不想用jquery的话,可以自行参考。

转载于:https://www.cnblogs.com/netxiaochong/archive/2012/01/08/2316293.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值