|
[ParseChildren(true,"BarItems"), PersistChildren(false) ] public class ToolsBar : System.Web.UI.Control { private BarItemsCollection _toolsBarItems;
public ToolsBar() { _toolsBarItems=new BarItemsCollection(); } [ Category("Behavior"), Description("BarItems"), DesignerSerializationVisibility(DesignerSerializationVisibility.Content), NotifyParentProperty(true), PersistenceMode(PersistenceMode.InnerProperty) ] public BarItemsCollection BarItems { get { if (_toolsBarItems == null) { _toolsBarItems = new BarItemsCollection(); } return _toolsBarItems; } } protected override void Render(HtmlTextWriter writer) { writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.RenderBeginTag(HtmlTextWriterTag.Table); writer.RenderBeginTag(HtmlTextWriterTag.Tr); foreach (BarItem item in BarItems) { writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Class,"ToolsBar_ButtonNormal"); writer.AddAttribute(HtmlTextWriterAttribute.Onclick,"heditor.Preview();"); writer.AddAttribute("noWrap","false"); writer.AddAttribute("onMouseDown","ButtonDown(this,0,0)"); writer.AddAttribute("onMouseUp","ButtonUp(this,0,0)"); writer.RenderBeginTag("img"); writer.AddAttribute("src", item.ImageUrl); writer.RenderEndTag(); writer.RenderEndTag(); } writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderEndTag(); }
}
以 上代码,在呈现时HTML代码中老是这样: <cc1:toolsbar id="ToolsBar1" runat="server"> <BarItems> <cc1:BarItem></cc1:BarItem> <cc1:BarItem></cc1:BarItem> <cc1:BarItem></cc1:BarItem> </BarItems> </cc1:toolsbar> 多出<BARITEMS></BARITEMS>标签,这不是我想要的,而且运行时也会出错!请高手指点......
|