Asp.net

帶有自定義子元素的 ASP.NET 中的自定義元素

  • November 12, 2010

我知道可以使用使用者控制項在 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>

引用自:https://stackoverflow.com/questions/673339