2013-01-18 27 views
1

我有Web部件显示来自任何视图的项目。我通过显示它:取消分组项目

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

如何显示未分组的项目,如果他们针对分组?

这是它应该如何看:

enter image description here

回答

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

+0

谢谢,它的工作! –