C# Sharepoint DataFormWebPart获取结果XML背后的代码

C# Sharepoint DataFormWebPart获取结果XML背后的代码,c#,sharepoint,C#,Sharepoint,我有一个DataFormWebPart 正如我们所知,他为我们创建了一个xml,我们通常在xsl中得到它,如下所示: <xsl:template match="/" > <xsl:for-each select="/dsQueryResponse/Rows/Row"> 现在,如果我们只需要一些额外的参数,我们会这样做 public override void DataBind() { this.sourceDoc = new ChannelsDFWP_X

我有一个DataFormWebPart 正如我们所知,他为我们创建了一个xml,我们通常在xsl中得到它,如下所示:

<xsl:template match="/" >
<xsl:for-each select="/dsQueryResponse/Rows/Row">
现在,如果我们只需要一些额外的参数,我们会这样做

public override void DataBind()
{
        this.sourceDoc = new ChannelsDFWP_XmlCreator().CreateXmlDoc(-ChannelsDAL.DAYSDELTA);
        this.BindXmlData();
 }
protected override void ModifyXsltArgumentList(ArgumentClassWrapper argList)
        {
            argList.AddParameter("name", string.Empty, value);
            base.ModifyXsltArgumentList(argList);
        }
现在我想在中间做一些事情,我希望在默认情况下得到相同的XML结果,并将其扩展到这样的

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(the same xml as the DFWP renders it);
XmlNode root = _ xmlDoc.CreateElement("anotherNode");
然后全部归还。你可以考虑一下这个

var xml = Lists.ChannelsCategories.Instance.GetList(SPContext.Current.Site.RootWeb).Items.Xml;
但这带来了一种完全不同(而且更丑陋)的XML。如果您能告诉我XSL在哪里可以将其转换为我们所知道的内容,我也会很高兴:)


谢谢

答案是这不太可能

但是还有希望-SharePoint:AggregateDataSource帮我完成了这项工作,因为我的其他数据在另一个列表中

基本上,SharePoint:AggregateDataSource接受IDataSource。我想(并希望尝试)您可以使用正确的类在那里添加各种数据

这里有更多的信息