It is possible to get sorting on Managed metadata column? I get grouping and filtering on the columns working but not sorting.
Any help is appreciated
|
It is possible to get sorting on Managed metadata column? I get grouping and filtering on the columns working but not sorting. Any help is appreciated |
|||
|
|
|
By default this will not work. So you have to extend content query webpart and use in this.ProcessDataDelegate = new ProcessData(ProcessItems); base.CreateChildControls(); next is to implement
protected DataTable ProcessItems(DataTable dt)
{
//Code to add custom sorting logic goes here.
DataView dv = new DataView(dt);
dv.Sort = "BusinessUnit ASC, Title ASC";
return CreateTable(dv);
}
public static DataTable CreateTable(DataView obDataView)
{
if (null == obDataView)
{
throw new ArgumentNullException
("DataView", "Invalid DataView object specified");
}
DataTable obNewDt = obDataView.Table.Clone();
int idx = 0;
string[] strColNames = new string[obNewDt.Columns.Count];
foreach (DataColumn col in obNewDt.Columns)
{
strColNames[idx++] = col.ColumnName;
}
IEnumerator viewEnumerator = obDataView.GetEnumerator();
while (viewEnumerator.MoveNext())
{
DataRowView drv = (DataRowView)viewEnumerator.Current;
DataRow dr = obNewDt.NewRow();
try
{
foreach (string strName in strColNames)
{
dr[strName] = drv[strName];
}
}
catch (Exception ex)
{
//Trace.WriteLine(ex.Message);
}
obNewDt.Rows.Add(dr);
}
return obNewDt;
}
Well that's it, you are done. |
|||
|
|