SharePoint: ListViewByQuery.RenderControl()或spview . rendera

本文关键字:spview rendera ListViewByQuery RenderControl SharePoint | 更新日期: 2023-09-27 18:16:16

我需要动态地改变什么列表,列,聚合显示在WebPart…因此,我们正在渲染一个html表使用ListViewByQuery.RenderControl()。然而,如果你导航到SharePoint站点本身的视图中,这个方法似乎不会呈现聚合。我们也尝试了SPView.RenderAsHtml()…也没有快乐……

SharePoint: ListViewByQuery.RenderControl()或spview . rendera

请告诉我有解决这个恼人问题的办法。

我们最终创建了一个XsltListViewWebPart的实例。在此上调用RenderControl()确实支持聚合等。它是这样的:

var xmlDocument = new XmlDocument();
xmlDocument.LoadXml(list.DefaultView.GetViewXml());
// etc
XsltListViewWebPart wp = new XsltListViewWebPart();
wp.XmlDefinition = xmlDocument.OuterXml;
// etc
wp.DataBind();
            using (var stringWriter = new StringWriter())
            {
                using (var writer = new HtmlTextWriter(stringWriter))
                {
                    wp.RenderControl(writer);
                }
                return stringWriter.ToString();
            }

比这更复杂一点....但这就是总体思路。

你可以尝试2个webpart的组合:1)框外列表视图webpart显示视图,因为它们在列表中2)一个无ui的webpart,放在同一个页面上,并根据查询的相关视图更新列表视图webpart的查询视图。更新应该通过两个webpart所在页面的webpart管理器完成。

好运。