0

我有一个 DataFormWebPart,我们知道他为我们创建了一个 xml,我们通常在我们的 xsl 中像这样得到它:

<xsl:template match="/" >
<xsl:for-each select="/dsQueryResponse/Rows/Row">

此外,假设我们想在 XML 中添加其他内容,我们将这样做

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 在哪里将其转换为我们所知道的,我也会很高兴 :)

谢谢!

4

1 回答 1

0

那么答案是这并不完全可能。

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

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

这是更多信息http://bresleveloper.blogspot.co.il/2013/11/dataformwebpart-add-data-to-xml.html

于 2013-11-07T16:58:03.907 回答