动态设置 DataFormWebPart 中 ParameterBinding 的 DefaultValue
在 WSS 中的自定义 aspx 页面中,我使用带有 XSL 文件的 DataFormWebPart 来呈现一些数据。 为了将值传递给 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”属性 不允许子对象。
有人对此有何看法吗?
In my custom aspx page in WSS I am using a DataFormWebPart with an XSL file to render some data. In order to pass values to the XSL I use parameter bindings. Specifically, I need to pass in the server host URL like this:
<ParameterBinding
Name="HttpHost"
Location="CAMLVariable"
DefaultValue="http://hardcoded.com" />
This works fine, but the next thing I want to do is to get the host name dynamically. So figuring out how to get that from SharePoint I added the following binding:
<ParameterBinding
Name="HttpHost"
Location="CAMLVariable"
DefaultValue='<%# SPContext.Current.Site.Url.Replace
(SPContext.Current.Site.ServerRelativeUrl, "") %>' />
Now to the problem. The code works as expected if used some other place in the page, but with the above code SharePoint reports:
Web Part Error: The 'ParameterBindings' property of 'WebPartPages:DataFormWebPart'
does not allow child objects.
Anyone have a take on this?
I have enabled server side code according to SharePoint 2007: using ASP.NET server side code in your pages
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在尝试了各种操作 ParameterBindings 属性的方法但没有成功之后,我想到了如何使用 Location 属性获取其中的动态值。
ParameterBinding
Location
属性指的是从哪里获取值。 类似 的文章这暗示了“Control()”选项。 因此,将参数绑定更改为:并将以下代码添加到我的页面:
...实际上成功了!
为了从随附的 XSL 文件中获取参数值,我将 param 元素放在根元素中。 参数名称属性必须与 ParameterBinding 的属性匹配:
然后可以将该参数作为任何其他 XSL 变量进行引用。
After trying various methods of manipulating the ParameterBindings property without success I thought of how I could get the dynamic value in there using the Location attribute.
The
ParameterBinding
Location
attribute refers to where to fetch the value from. Articles like this hints of the "Control()" option. So changing the parameter binding to:and adding the following code to my page:
...actually did the trick!
To get to the parameter values from within the accompanying XSL file I put param elements in the root element. The param name attribute must match that of the
ParameterBinding
:The parameter can then be referenced as any other XSL variable.