在我的WSS自定义aspx页面中,我使用DataFormWebPart和XSL文件来呈现一些数据。为了将值传递给XSL,我使用了参数绑定。具体来说,我需要传递服务器主机URL,如下所示:
<ParameterBinding
Name="HttpHost"
Location="CAMLVariable"
DefaultValue="http://hardcoded.com" />
这个方法很好用,但是我接下来要做的是动态地获取主机名,所以为了弄清楚如何从SharePoint获取主机名,我添加了以下绑定:
<ParameterBinding
Name="HttpHost"
Location="CAMLVariable"
DefaultValue='<%# SPContext.Current.Site.Url.Replace
(SPContext.Current.Site.ServerRelativeUrl, "") %>' />
现在来看看问题所在。如果在页面的其他地方使用代码,代码将按预期工作,但使用上面的代码SharePoint报表:
Web部件错误:“WebPartPages:DataFormWebPart”的“ParameterBindings”属性不允许使用子对象。
有人对此有什么看法吗?
我已经根据SharePoint 2007: using ASP.NET server side code in your pages启用了服务器端代码
1条答案
按热度按时间zte4gxcn1#
在尝试了各种操作ParameterBindings属性的方法都没有成功之后,我想到了如何使用Location属性获取其中的动态值。
ParameterBinding
Location
属性表示从哪里获取值。类似this的文章提示“Control()”选项。因此将参数绑定更改为:并将以下代码添加到我的页面:
......真的成功了!
为了从附带的XSL文件中获取参数值,我在根元素中放置了param元素,param name属性必须与
ParameterBinding
:然后,可以将该参数作为任何其他XSL变量引用。