5

我正在构建一个自定义内容查询 Web 部件来显示来自员工内容类型的汇总信息。此内容类型有一个名为 EmpPhoto 的发布图像网站栏。我的 CQWP 运行良好,我需要的所有网站栏都可用。

我现在正在创建一个自定义 xsl 模板以正确呈现信息,但使用 EmpPhoto 图像时卡住了。

如果我使用代码:

<xsl:value-of select="@EmpPhoto" disable-output-escaping="yes" />

...我得到了一个正确渲染的图像,这很棒。但是我想为这个图像构建一个 onmouseover 事件,这种方法不起作用。

我想创建一个 xsl 变量来获取实际的图像 URL,然后构建我自己的 html img 并将 onmouseover 写入其中,例如

<xsl:variable name="EmpPhotoUrl">
    <xsl:call-template name="OuterTemplate.GetSafeStaticUrl">
        <xsl:with-param name="UrlColumnName" select="@EmpPhoto"/>
    </xsl:call-template>
</xsl:variable>

...

<img src="{$EmpPhotoUrl}" onmouseover="" alt="test" />

但是,这不会从 EmpPhoto 站点列中获取 URL。我是 xsl 的新手,所以我很可能会错过一个明显的解决方案!

非常感谢任何帮助,

强尼

4

2 回答 2

4

这是作弊......它正在对 src 属性做出假设。但在这里!

<xsl:variable name="EmpPhotoUrl" select="substring-before(substring-after(@EmpPhoto, 'src=&quot;'), '&quot;')" />
于 2009-02-19T06:03:17.770 回答
1

鉴于 @EmpPhoto 值只是一个表示 html 图像标签的字符串,您可以将鼠标悬停脚本“注入”到该值中,例如

<xsl:variable name="EmpPhoto"><xsl:value-of select=sub-string(@EmpPhoto) />[and some other code to add the mouseover etc]</xsl:variable>

<xsl:value-of select="$EmpPhoto" />
于 2009-02-18T23:00:53.713 回答