1

我有从任何视图显示项目的 Web 部件。我通过以下方式显示它:

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

如果它们在视图中分组,我如何显示未分组的项目?

它应该是这样的:

在此处输入图像描述

4

1 回答 1

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视图才能反映更改。显然你不想这样做,因为它会永久影响视图。

于 2013-01-18T09:17:19.803 回答