Asp.net
帶有自定義子元素的 ASP.NET 中的自定義元素
我知道可以使用使用者控制項在 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>