【发布时间】:2011-01-24 23:16:19
【问题描述】:
如果服务器控件是这样声明的
<my:customControl id="cc1" runat="server">
Help me obi-wan kenobi!
</my:customControl>
是否可以访问标签之间的文本?
【问题讨论】:
标签: asp.net custom-server-controls
如果服务器控件是这样声明的
<my:customControl id="cc1" runat="server">
Help me obi-wan kenobi!
</my:customControl>
是否可以访问标签之间的文本?
【问题讨论】:
标签: asp.net custom-server-controls
如果 asp.net 知道如何解析您的控件(反映 Literal、LiteralControl、TextBox 控件以查看其完成方式)
[ControlBuilder(typeof(YourControlBuilder)), DefaultProperty("Text")]
public class YourControl : Control, ITextControl {
}
[Bindable(true), DefaultValue(""), Localizable(true)]
public string Text {
get;
set;
}
public class YourControlBuilder : ControlBuilder {
}
【讨论】:
将[ParseChildren(true, "Text")] 添加到您的自定义控件类中即可。
您可以在此处http://msdn.microsoft.com/en-us/library/system.web.ui.parsechildrenattribute.aspx找到更多信息和示例
编辑
来自上述链接的相关sn-p
[ParseChildren(true, "Employees")]
使用 ParseChildren 属性设置 ChildrenAsProperties 和 DefaultProperty 属性。使用这个 构造函数,控件解析所有 子控件作为属性并且必须 定义一个名为的公共属性 员工,它声明为 数组列表。嵌套(子)元素 必须对应于子元素 员工财产或其他 控件的属性。
【讨论】: