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>
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