当前位置: 首页 > article >正文

CheckBoxList、DropDownList、ListBox、RadioButtonList、BulletedList对于符号的解释区别

这几个控件都继承自ListControl,功能想必大家都很清楚了。但是这几个控件对于&符号的解释还是有区别的。先看下代码:

 
protected void Page_Load( object sender, EventArgs e)
{
List
< Person > PersonList = new List < Person > () { new Person( 1 , " 张&三 " ),
new
Person( 1 , " 李&nbsp;四 " ), new Person( 1 , " 王五 " ), new Person( 1 , " 赵六 " ) };
CheckBoxList1.DataSource
= PersonList;
CheckBoxList1.DataTextField
= " Name " ;
CheckBoxList1.DataValueField
= " Id " ;
CheckBoxList1.DataBind();

DropDownList1.DataSource
= PersonList;
DropDownList1.DataTextField
= " Name " ;
DropDownList1.DataValueField
= " Id " ;
DropDownList1.DataBind();

ListBox1.DataSource
= PersonList;
ListBox1.DataTextField
= " Name " ;
ListBox1.DataValueField
= " Id " ;
ListBox1.DataBind();

RadioButtonList1.DataSource
= PersonList;
RadioButtonList1.DataTextField
= " Name " ;
RadioButtonList1.DataValueField
= " Id " ;
RadioButtonList1.DataBind();

BulletedList1.DataSource
= PersonList;
BulletedList1.DataTextField
= " Name " ;
BulletedList1.DataValueField
= " Id " ;
BulletedList1.DataBind();



}

效果:

2011030117354954.jpg

可以发现DropDownList、ListBox、BulletedList中Item的内容在转换成Html code的时候 主动的把"&"编程"&amp;"了。而RaddioButtonList和CheckBoxList却没有转移"&"。

查看它们继承的接口发现 前三个只继承了ListControl, IPostBackDataHandler,后两者继承了 ListControl, IRepeatInfoUser, INamingContainer, IPostBackDataHandler

INamingContainer:标识在 Page 对象的控件层次结构内创建新 ID 命名空间的容器控件。任何实现该接口的控件都创建一个新的命名空间,在这个新的命名空间中,所有子控件 ID 属性在整个应用程序内保证是唯一的。由该接口提供的标记允许在支持数据绑定的 Web 服务器控件内唯一命名动态生成的服务器控件实例。

IRepeatInfoUser:定义必须由任何重复项列表的列表控件实现的属性和方法。IRepeatInfoUser 接口定义必须由所有重复项列表的列表控件(如 CheckBoxList、DataList 和 RadioButtonList)实现的属性和方法。

看了两个接口发现 可能跟IRepeatInfoUser有关。再看IRepeatInfoUser发现里面有个方法:RenderItem——用指定的信息呈现列表中的项。

void RenderItem(
ListItemType itemType,
int repeatIndex,
RepeatInfo repeatInfo,
HtmlTextWriter writer
)
itemType:
ListItemType 枚举值之一。
repeatIndex:指定列表控件中项的位置的序号索引
repeatInfo:表示用于呈现列表中的项的信息
writer:表示要在客户端呈现 HTML 内容的输出流(貌似跟这个HtmlTextWriter有关)

本人没有用Reflector看后台的代码是怎么写的,但是感觉应该在这里面没有对"&"做转义。呵呵,纯粹自己猜测,如果不对还希望高手指正。
 
 

转载于:https://www.cnblogs.com/SandyWang/archive/2011/03/01/1968222.html

http://www.lryc.cn/news/2416171.html

相关文章:

  • BeyondCompare3密钥过期怎么办?不用再找新的密钥,一招帮你搞定!
  • dell 笔记本禁用触摸板方法
  • 【游戏逆向】CS1.6无限手雷辅助
  • 红客联盟是什么?红客需要传承!
  • 用WordPress开发app之拿去即用的Blog-App
  • 屏幕录像专家6.0_电脑屏幕录像直播软件推荐?功能全面的专业软件分享
  • WSockExpert[抓包工具]
  • 开源软件抄袭 美国_本网站共享来自美国政府多个项目的开源代码
  • 404是什么意思,404错误页面有什么用?
  • Freehostia 老牌稳定免费空间申请教学
  • Ecall测试,ITU-T P.1140 车载紧急呼叫系统语音测试
  • python-正则表达式及应用(b站弹幕屏蔽)
  • 我的ESP32学习(5)AP和后续长远布局
  • Squirrel SQL Client客户端工具
  • 轻松应对:《精灵与萤火意志》游戏缺失iutils.dll文件的终极解决指南
  • 搜索引擎分类与工作原理
  • Android 根目录和sdcard卡路径分析
  • NR 5G 密钥与安全详解
  • 人品计算器
  • Conficker蠕虫病毒专杀工具集锦
  • IOS NSProcessInfo获取系统开机累计时间
  • 家里闲置电脑不知该如何利用?不如做点项目帮自己生钱
  • [WebSocket入门]搭建WebSocket多人在线聊天室笔记(SpringBoot+WebSocket)
  • DirectX 入门知识
  • IIS管理器安装和配置教程
  • 【静态网页制作大作业——个人博客搭建(HTML+CSS+Javascript)】
  • IIS7配置防盗链
  • Exchange2007-Exchange2010升级-08 Exchange2010的最后配置和数据迁移
  • sourceforge下载慢解决方法
  • vs2008安装_编程莫愁,IT莫愁,这里有Visual Studio 2008软件安装教程