Программное создание дерева в sharepoint на основе столбца

Мне нужно разработать веб-часть для SharePoint, которая считывает список и создает древовидное представление.

Древовидное представление должно быть организовано следующим образом :Корень (или корни )должны быть созданы полем выбора, которое представляет категорию, например Напитки , дочерние узлы — это имена строк, содержащих эту категорию, древовидное представление должно быть создано программно.

List:
Title(string)       Category(Choice)
Coke            Drinks
Beer            Drinks
Fish            Food
Chips           Food

Would produce this:
Drinks
    Coke
    Beer
Food
    Fish
    Chips

код, который у меня есть

  TreeView treeView;
    TreeNode rootNode;
    TreeNode childNode;


    protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)
    {
        // render the control
        base.RenderContents(writer);
    }

    protected override void CreateChildControls()
    {
        List<TreeNode> items = new List<TreeNode>();

        base.CreateChildControls();

        // get the current site
        using (SPSite Site = new SPSite(SPContext.Current.Site.Url + "/UberWiki"))
        {
            using (SPWeb currentWeb = Site.OpenWeb())
            {

                // set the tree view properties



                SPList list = currentWeb.Lists["Pages"];

                SPFieldChoice field = (SPFieldChoice)list.Fields["Categories"];

                foreach (string str in field.Choices)
                {
                    treeView = new System.Web.UI.WebControls.TreeView();
                    rootNode = new System.Web.UI.WebControls.TreeNode(str);
                    treeView.Nodes.Add(rootNode);

                    foreach (SPListItem rows in list.Items)
                    {
                        childNode = new System.Web.UI.WebControls.TreeNode(rows.Title);
                        treeView.Nodes.Add(childNode);
                    }
                }
            }
            this.Controls.Add(treeView);
            base.CreateChildControls();
        }
    }
5
задан user1211929 30 October 2012 в 16:49
поделиться