Thursday, February 5, 2015

Binding Term store/Term set in Dropdown control

Binding Term store/Term set in Dropdown control:


In .aspx.cs / .ascx.cs:

string siteURL = http://siteURL;

using (SPSite sSite = new SPSite(siteURL))
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPWeb web = sSite.OpenWeb())
{
TaxonomySession txnSession = new TaxonomySession(sSite);

string strTermStoreName = "Managed Metadata Service";
TermStore termstore = txnSession.TermStores[strTermStoreName];

Group group = termstore.Groups["GroupName"];

TermSet tsRegion = group.TermSets["TermSet name"];
DataTable dtMMSRegion = GetTermSet(tsRegion.Terms);

DataView dvMMSRegion = new DataView(dtMMSRegion);
dvMMSRegion.Sort = "Name ASC";

ddlLocation.DataSource = dvMMSRegion;
ddlLocation.DataTextField = "Name";
ddlLocation.DataValueField = "Name";
ddlLocation.DataBind();
}
});
}




        protected DataTable GetTermSet(TermCollection tc)
        {
            DataTable dtMMSTermTable = new DataTable();

            dtMMSTermTable.Columns.Add("Name", typeof(string));

            DataRow drMMSTermRow;

            foreach (Term t in tc)
            {
                drMMSTermRow = dtMMSTermTable.NewRow();
                drMMSTermRow[0] = t.Name;
                dtMMSTermTable.Rows.Add(drMMSTermRow);
            }

            return dtMMSTermTable;

        }

In .aspx / .ascx

<asp:DropDownList ID="ddlLocation" AutoPostBack="true" EnableViewState="true" runat="server"></asp:DropDownList>

No comments:

Post a Comment