我有网页部分,可以显示任何视图中的项目。我正在通过以下方式展示:
protected override void RenderContents(HtmlTextWriter writer)
{
String res = "";
SPView def = list.Views[_ViewName];
res = def.RenderAsHtml();
writer.write(res);
}
如果未分组的项目在视图中分组,我该如何显示这些项目?
这应该是它的样子:
答案 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
以便反映更改。显然你不想这样做,因为它会永久地影响视图。