服务器控制子项集合的递归函数

发布于 2024-11-01 04:29:42 字数 1333 浏览 5 评论 0 原文

我有一个包含子项目的项目列表的控件。我需要一个递归函数来收集子项目。
例如,我如何收集和迭代这个包含子项目的集合?
ArrayList MenuItems 是适合使用的类型吗?

<myControl:Menu id="MyControl" runat="server">
    <mycontrol:MenuItem Text="Hellow World">
        <mycontrol:MenuItem Text="Hellow World">
             <mycontrol:MenuItem Text="Hellow World" />         
        </myControl:menuItem>
    </myControl:menuItem>
</myControl:Menu>

这是控制:

  public class QuickControl: WebControl
  {
    private ArrayList MenuItems;

    [
    Category("Behavior"),
    Description("The contacts collection"),
    DesignerSerializationVisibility(
        DesignerSerializationVisibility.Content),
    Editor(typeof(MenuCollectionEditor), typeof(UITypeEditor)),
    PersistenceMode(PersistenceMode.InnerDefaultProperty)
    ]
    public ArrayList MenuItems
    {
        get
        {
            if (MenuList == null)
            {
                MenuList = new ArrayList();
            }
            return MenuList;
        }
    }


    // The contacts are rendered in an HTML table.
    protected override void RenderContents(
        HtmlTextWriter writer)
    {
        Table t = CreateContactsTable();
        if (t != null)
        {
            t.RenderControl(writer);
        }
    }
}

I have control that has a list of items with subitems. I need to have a recursive function that collects the sub items.
e.g How do I collect and iterate this collection that has sub items?
is an ArrayList MenuItems the appropriate Type to use?

<myControl:Menu id="MyControl" runat="server">
    <mycontrol:MenuItem Text="Hellow World">
        <mycontrol:MenuItem Text="Hellow World">
             <mycontrol:MenuItem Text="Hellow World" />         
        </myControl:menuItem>
    </myControl:menuItem>
</myControl:Menu>

Here is the control:

  public class QuickControl: WebControl
  {
    private ArrayList MenuItems;

    [
    Category("Behavior"),
    Description("The contacts collection"),
    DesignerSerializationVisibility(
        DesignerSerializationVisibility.Content),
    Editor(typeof(MenuCollectionEditor), typeof(UITypeEditor)),
    PersistenceMode(PersistenceMode.InnerDefaultProperty)
    ]
    public ArrayList MenuItems
    {
        get
        {
            if (MenuList == null)
            {
                MenuList = new ArrayList();
            }
            return MenuList;
        }
    }


    // The contacts are rendered in an HTML table.
    protected override void RenderContents(
        HtmlTextWriter writer)
    {
        Table t = CreateContactsTable();
        if (t != null)
        {
            t.RenderControl(writer);
        }
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文