Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sitecore:如何从嵌套XSLT呈现引用子布局的呈现参数_Xslt_Sitecore_Sublayout - Fatal编程技术网

Sitecore:如何从嵌套XSLT呈现引用子布局的呈现参数

Sitecore:如何从嵌套XSLT呈现引用子布局的呈现参数,xslt,sitecore,sublayout,Xslt,Sitecore,Sublayout,我有一个指定给子布局(.ascx)的渲染参数模板。在该子布局的标记中,我使用sitecore控件引用XSLT呈现 如何从嵌套的XSLT呈现中引用呈现参数字段?正如Shrirop所说,假设您尝试直接访问呈现参数? 如果仍然希望访问参数,并且直接在XSL中使用不起作用,请尝试将参数从代码传递到渲染。这是未经测试的,因为目前我面前没有Sitecore实例 静态绑定控件应包含在ascx中,您可以在参数属性中将它们设置为“key=value”对: <sc:XslFile runat="server

我有一个指定给子布局(.ascx)的渲染参数模板。在该子布局的标记中,我使用sitecore控件引用XSLT呈现


如何从嵌套的XSLT呈现中引用呈现参数字段?

正如Shrirop所说,假设您尝试直接访问呈现参数?

如果仍然希望访问参数,并且直接在XSL中使用
不起作用,请尝试将参数从代码传递到渲染。这是未经测试的,因为目前我面前没有Sitecore实例

静态绑定控件应包含在ascx中,您可以在
参数
属性中将它们设置为“key=value”对:

<sc:XslFile runat="server" ID="scRendering" Parameters="param1=abc&param2=xyz" Path="/path/to/rendering.xslt" />
您现在应该可以访问XSL中的参数:

<xsl:param name="param1"/>
<xsl:param name="param2"/>

<xsl:value-of select="$param1" />
<xsl:value-of select="$param2" />

就我个人而言,我会将XLST转换为ASPX,您可以将其绑定为标准ASP.Net控件,从代码隐藏中传入所需的参数(或这些参数的对象)。您仍然可以从代码中访问Sitecore上下文和所需的所有其他Sitecore API功能。最好是在控件中添加另一个占位符,并通过Sitecore界面(或在该模板的
\uu标准值中)添加渲染,并将参数模板也指定给渲染-如果必须设置渲染参数两次,则只有一个缺点,即每个控件一次,但是您可以继续使用XSL并保持灵活性


编辑:注意不要在呈现参数模板中的字段名称中使用空格,并确保名称在xslt中完全匹配,因为它区分大小写。

发现该标准似乎不适合您。请检查:1.将渲染参数模板指定给渲染时,请确保模板继承自/sitecore/templates/System/Layout/Rendering Parameters/Standard Rendering Parameters模板。2.传递给渲染的参数区分大小写。i、 e.如果模板上的字段名是“Title”和“Author”,那么您必须相应地指定参数。@Shriroop-是的,所有的基础都记下来了。谢谢。我试过直接访问字段。我非常熟悉使用助手直接从子布局访问渲染参数,以及直接从xslt访问渲染参数。但是,我的项目收到了一些延迟的需求,这使得我将相同的组件添加到一些模块中是合乎逻辑的。不过,因为我要对现有内容进行重新拟合,所以我希望将数据源字段和呈现参数保留在父级上。好的,明白了。你有没有试着像上面的代码片段那样传递参数?是的。不走运。但我没有放弃。目前,我有一个有效的解决方案,还有其他任务要完成,所以我现在不得不暂时离开。我会回来的。我会发布更新。如果有人不尽快发布解决方案。我想你最后的建议可能是最好的办法。好吧,也许对我来说最好的是为用户体验做出一点牺牲。我刚刚做了一些测试,有趣的是,如果您使用
scRendering.Parameters=“param1=abc¶m2=xyz”
然后它会按预期工作,但是
scRendering.Parameters=sublayout.Parameters
不会。奇怪的我将进行更多的测试。好的,重新测试,它在Sitecore 6.6中的工作与我预期的一样,呈现模板中的字段名和xsl中的参数名需要精确匹配,它们区分大小写!确保字段名称中也没有空格。
<xsl:param name="param1"/>
<xsl:param name="param2"/>

<xsl:value-of select="$param1" />
<xsl:value-of select="$param2" />