【发布时间】:2010-04-09 16:19:00
【问题描述】:
我很好奇为什么只有一些System.Web.UI.WebControl 控件在具有相同接口属性的情况下实现某些接口。
例如,有很多控件具有 Text 属性,但只有以下实现了 ITextControl:
- 标签
- 文字
- DataBoundLiteral
- 文本框
- 列表控件
(TextBox 和 ListControl 实际上实现了实现 ITextControl 的 IEditableTextControl)
TableCell、Button、HyperLink 等都没有,所以我只好写这样的代码
ITextControl textControl = control as ITextControl;
TableCell tableCell = control as TableCell;
if (textControl != null)
{
textControl.Text = value;
}
else if (tableCell != null)
{
tableCell.Text = value;
}
而不是这个
control.Text = value;
这是设计决定还是疏忽?
【问题讨论】:
-
好问题。我认为区别在于 HtmlControl 和 WebControl。但很想听听更多关于这个的背景......
-
@Sunny 一个是HtmlControl,一个是WebControl我可以理解,但是各种WebControl之间还是有区别的。
标签: asp.net web-controls