1

そのため、16 進文字列を含む SP 2010 Designer のすべてのフォームを表示するいくつかの列フィールドにスパン タグを追加しています。インライン スタイルを使用して、16 進文字列ではなく色付きの背景を持つブロックを表示しています。それ自体はとてもシンプルです。

最初のビューでこれを正常に達成しましたが、2 番目のビューでは、インライン スタイルで使用する値を返すことができないようです。以下は元の xsl で、行パラメーターは thisNode です。ビューの唯一の違いは、1 つはカスタム リストのすべてのビューであり (これは機能しています)、もう 1 つは別のカスタム リストのすべてのビューであり、前のリストの値がルックアップ列としてあり、列の 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"/>

これにより、ルックアップ列の値がテキストとして表示されます。したがって、このメソッドを使用して別のパラメーターまたは変数を作成し、次のように値を 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>

これにより、Hexadec コードがテキストとしてではなく、20px ブロックとして私の Hexadec カラーが表示されるので、これが同じ問題を抱えている他の人に役立つことを願っています。

于 2013-07-21T07:23:39.700 に答える