首页 新闻 会员 周边

C#后台代码给控件注册客户端事件处理函数,单引号被HTML编码的问题

0
悬赏园豆:5 [已关闭问题] 关闭于 2011-08-06 10:37

C#代码为input标签注册onfocus事件:
InDateTextBox.Attributes["onfocus"] = "onInDateFocus ('" + InDateTextBox.ClientID + "')";

但是查看源文件发现单引号被HTML编码成“'”:
onfocus="onInDateFocus ('ctrl6_InDateTextBox')" 

单引号被编码成(去掉感叹号):&!#39;

问题补充:

昨天粗心,没有发现源文件中ID是不一样的。将自己的注释供参考……

/*
             * 关键是ClientID的生成模式问题,单引号HTML编码成“'”不是问题。
             * ClientIDMode属性设置:

             * Inherit:继承上一级容器控件

             * Predictable:默认的模式(容器控件id_模板控件id_行数)

             * AutoID:.NET 4.0以前的模式(容器控件id_ctrl(行数)_模板控件id)
             *      因为以前版本不添加前缀“容器控件id_”,所以也不能像以前一样处理。
             * Static:模板控件id
             *      问题:造成所有控件的id重名。

             *
             * Name属性,相当于是AutoID模式。 
             */

WanglinWuDing的主页 WanglinWuDing | 初学一级 | 园豆:200
提问于:2011-08-05 21:46
< >
分享
所有回答(1)
0

InDateTextBox.Attributes["onfocus"] = "onInDateFocus (this.id)";

慧☆星 | 园豆:5640 (大侠五级) | 2011-08-06 09:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册