1

因此,我在 SP 2010 Designer 中的所有表单中的几个列字段中添加了一个跨度标记,其中包含十六进制字符串,我使用内联样式来显示具有彩色背景而不是十六进制的块本身,非常简单。

我在第一个视图中成功实现了这一点,但在第二个视图中,我似乎无法返回要在内联样式中使用的值,下面是原始 xsl,行参数是 thisNode。视图中的唯一区别是一个自定义列表的视图全部(这个正在工作),另一个是另一个自定义列表的视图全部,以前的列表值作为查找列,列 xsl 值在下面。

<xsl:value-of select="$thisNode/@*[name()=current()/@Name]" disable-output-escaping="yes" />

我尝试将 {$thisNode/@*[name()=current()/@Name]} 添加到内联 css,但是当我在查看表单时应该看到一块颜色时,什么也没有返回。我也尝试过其他方法从 thisNode 行获取值但没有运气,谁能告诉我我应该做什么或我做错了什么?

4

1 回答 1

1

解决了!

所以第一步是删除 Loopup 列周围的超链接:

<xsl:value-of select="substring-before(substring-after($thisNode/@*[name()=current()/@Name],'&gt;'), '&lt;')" disable-output-escaping="yes"/>

然后将 Lookup 列值显示为文本;所以我们可以使用这个方法来创建另一个参数或变量,并将值添加到我们的 css 参数中,如下所示:

<xsl:param name="thisNode" select="."/>
<xsl:param name="thisColour" select="substring-before(substring-after($thisNode/@*[name()=current()/@Name],'&gt;'), '&lt;')"/>
<span style="display:block;background:{$thisColour};width:20px;height:20px;" title=""></span>

然后,这将我的十六进制颜色显示为 20px 块,而不是将十六进制代码显示为文本,所以希望这可以帮助遇到同样问题的其他人,享受吧!

于 2013-07-21T07:23:39.700 回答