取消组合分组的项目

时间:2013-01-18 08:37:15

标签: c# sharepoint-2010

我有网页部分,可以显示任何视图中的项目。我正在通过以下方式展示:

protected override void RenderContents(HtmlTextWriter writer)
{
String res = "";
SPView def = list.Views[_ViewName];
res = def.RenderAsHtml();
writer.write(res);
}

如果未分组的项目在视图中分组,我该如何显示这些项目?

这应该是它的样子:

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要获取视图的Query属性,然后删除<GroupBy>元素。在大多数情况下,您可能正常使用正则表达式

SPView def = list.Views[_ViewName];
string query = def.Query;
query = Regex.Replace(query, @"\<GroupBy.+?\</GroupBy\>", "", RegexOptions.IgnoreCase);
def.Query = query;
string res = def.RenderAsHtml();
writer.Write(res);

但在更复杂的情况下,您可能需要使用正确的XML操纵器。

我不确定这里是RenderAsHtml是否要求您在视图上调用Update以便反映更改。显然你不想这样做,因为它会永久地影响视图。