我知道可以使用用户控件在ASP.NET中定义自定义标签.但据我所知,您只能向这些控件添加属性.我想能够嵌入更复杂的数据,有点简单:
<myControls:MyGraph id="myGraph1" runat="server"> <colors> <color>#abcdef</color> <color>#123456</color> </colors> </myControls:MyGraph>
这可能在ASP.NET中?我应该尝试扩展ListView吗?还是有更好更正确的解决方案?
解决方法
当然有可能.对于您的示例,类将如下所示:
[ParseChildren(true)] class MyGraph : WebControl { List<Color> _colors = new List<Color>(); [PersistenceMode(PersistenceMode.InnerProperty)] public List<Color> Colors { get { return _colors; } } } class Color { public string Value { get; set; } }
实际的标记是:
<myControls:MyGraph id="myGraph1" runat="server"> <Colors> <myControls:Color Value="#abcdef" /> <myControls:Color Value="#123456" /> </Colors> </myControls:MyGraph>