比如,我想写一个ButtonBar,我希望能在页面上这样子静态配置他:
<UCC:ButtonBar runat="server">
  <UCC:ButtonItem Text="1"/>
  <UCC:ButtonItem Text="2"/>
  <UCC:ButtonItem Text="3"/>
<UCC:/ButtonBar>怎么办?

解决方案 »

  1.   

    问题已经解决。解决方法如下:
    ButtonBar控件需要继承自WebControl, 并声明INamingContainer接口,
    再设置类属性为:[ParseChildren(true, "Buttons")] 就可以了。如下:[ParseChildren(true, "Buttons")] 
    public class ButtonBar: WebControl, INamingContainer它有一个Buttons属性,
    public ButtonItemCollection Buttons{
      get{
        if( _Buttons == null ){
          _Buttons = new ButtonItemCollection();
        }
        return _Buttons;
       }
    }ButtonItemCollection 是ButtonItem的强类型集合而已,继承自CollectionBase。
    ButtonItem就包括按钮需要的信息,如Text,Url,Enabled等等。
    一切OK。
    主要是加上ParseChildren类属性。解释器就能正确工作。