Asp.net 动态设置DataFormWebPart中ParameterBinding的DefaultValue
在WSS中的自定义aspx页面中,我使用带有xsl文件的DataFormWebPart来呈现一些数据。为了将值传递给xsl,我使用参数绑定。具体来说,我需要像这样传入服务器主机url:Asp.net 动态设置DataFormWebPart中ParameterBinding的DefaultValue,asp.net,sharepoint,dataformwebpart,parameterbinding,Asp.net,Sharepoint,Dataformwebpart,Parameterbinding,在WSS中的自定义aspx页面中,我使用带有xsl文件的DataFormWebPart来呈现一些数据。为了将值传递给xsl,我使用参数绑定。具体来说,我需要像这样传入服务器主机url: <ParameterBinding Name="HttpHost" Location="CAMLVariable" DefaultValue="http://hardcoded.com" /> 这很好,但我想做的下一件事是动态获取主机名。因此,为了弄清楚如何从Sha
<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 reports:
Web部件错误:“WebPartPages:DataFormWebPart”的“ParameterBindings”属性
不允许子对象
有人对此有看法吗
更新:我已经根据启用了服务器端代码。好的,我找到了一个解决方案,虽然没有那么优雅,但很有效 在尝试了各种操作ParameterBindings属性的方法但没有成功之后,我想到了如何使用Location属性获取其中的动态值
参数绑定
位置
属性指从何处获取值。类似于“Control()”选项提示的文章。因此,将参数绑定更改为:
<ParameterBinding
Name="HttpHost"
Location="Control(MyHttpHost, Text)"
DefaultValue="" />
然后可以将该参数作为任何其他XSL变量引用。使用服务器变量可能更有意义:
对于url的具体情况,我同意,因此+1。但我的答案也适用于希望传递到xsl中的任何其他值。
<asp:TextBox ID="MyHttpHost" runat="server" Visible="false" />
<script runat="server">
protected void Page_Load()
{
MyHttpHost.Text =
SPContext.Current.Site.Url.Replace(SPContext.Current.Site.ServerRelativeUrl, "");
}
</script>
<xsl:stylesheet ...>
...
<xsl:param name="HttpHost"/>