sharepoint 2010 获取列表术语数据源方法

①,创建一个webpart,这个webpart里面放一个treeview控件,
<asp:TreeView ID="TreeView1" runat="server">
</asp:TreeView>
②,引用 Microsoft.SharePoint.Taxonomy.dll
③,在后台代码中,添加如下代码。

protected void Page_Load(object sender, EventArgs e)

        {

            if (!IsPostBack)

            {

SPSecurity.RunWithElevatedPrivileges(delegate()

                {

                    SPSite site =SPContext.Current.Site;

                    SPWeb web =SPContext.Current.Web;

                    SPList list = web.Lists["共享文档"];

                    TaxonomySession session =new TaxonomySession(site);

                    TaxonomyField oField = list.Fields["文档标签"]as TaxonomyField;//创建的字段名

                    TreeNode treeNode =new TreeNode();

                    treeNode.Text = "文档标签";

                    TreeView1.Nodes.Add(treeNode);

                    TermSet termSet = session.DefaultSiteCollectionTermStore.GetTermSet(oField.TermSetId);

                    foreach (Term termin termSet.Terms)

                    {

                        AddTermSet(term, treeNode);

                    }

                });

            }

        }

        void AddTermSet(Term term,TreeNode treeNode)

        {

            var node = new TreeNode(term.Name, term.Id.ToString(),null, "", null);

            treeNode.ChildNodes.Add(node);

            treeNode = node;

            foreach (Term tin term.Terms)

            {

                AddTermSet(t, treeNode);

            }

        }

 

posted @ 2013-05-12 23:21  javawebsoa  Views(200)  Comments(0Edit  收藏  举报