ASP.NET自定义服务器控件:嵌套项

时间:2010-04-06 09:31:31

标签: .net asp.net listitem

在aspx 代码视图中,我们可以这样编码:

<asp:ListBox runat="server">
    <asp:ListItem Text="Item1" />
    <asp:ListItem Text="Item2" />
</asp:ListBox>

但是,ListItem类不是服务器控件。 我们怎样才能在自定义服务器控件中执行此操作?也就是说,如何开发一个类似ListItem的类,可以使这个标记样式有效?我正在构建一个类似于ListBox的服务器控件。

感谢:)

3 个答案:

答案 0 :(得分:1)

创建一个继承自ListControl的类,由于各种原因,即使这可能无法为您提供完整的UI智能感知(关于设计器使用自定义程序集的方式),但它将支持添加列表项并管理所有对你而言。

答案 1 :(得分:0)

如果你想用你的控件做这么薄,你需要实现Control Designer

已编辑添加:

并检查ParseChildrenPersistChildrenDesignerSerializationVisibilityPersistenceMode属性。

答案 2 :(得分:0)

protected override void RenderContents(HtmlTextWriter output)
        {

            output.Write("<div><div class=\"UserSectionHead\">");

            Label l = new Label() { Text = Label };
            TextBox t = new TextBox() { Text = Text };
            l.AssociatedControlID = t.ID;
            l.RenderControl(output);

            output.Write("</div><div class=\"UserSectionBody\"><div class=\"UserControlGroup\"><nobr>");

            t.RenderControl(output);

            output.Write("</nobr></div></div><div style=\"width:100%\" class=\"UserDottedLine\"></div>");

        }
相关问题