我有从任何视图显示项目的 Web 部件。我通过以下方式显示它:
protected override void RenderContents(HtmlTextWriter writer)
{
String res = "";
SPView def = list.Views[_ViewName];
res = def.RenderAsHtml();
writer.write(res);
}
如果它们在视图中分组,我如何显示未分组的项目?
它应该是这样的:
我有从任何视图显示项目的 Web 部件。我通过以下方式显示它:
protected override void RenderContents(HtmlTextWriter writer)
{
String res = "";
SPView def = list.Views[_ViewName];
res = def.RenderAsHtml();
writer.write(res);
}
如果它们在视图中分组,我如何显示未分组的项目?
它应该是这样的:
您需要获取视图的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
视图才能反映更改。显然你不想这样做,因为它会永久影响视图。