有条件显示2个字符中的1个.S基于xsl:value-of
Conditionally Display 1 of 2 char.s based on xsl:value-of
我有一个值来自SharePoint作为<xsl:value-of select="@fldNm" />
This将有两个可能的值之一:一个空字符串,或'yes '。这是在SharePoint显示表单的<xsl:template name="dvt_1.rowedit">
中。
如果值是一个空字符串,我想显示一个字符,但如果它是'yes',我想显示一个不同的字符。
我把一个标签内联的HTML,并使用document.write()
。但是我没有运气使动作响应fldNm的值。
我找到了很多例子,但是它们和我要做的太不一样了,我搞不懂。
情况如下:
当你创建SharePoint自定义列表时,会为你创建3个.aspx页面:newForm, editForm和disform。
这些.aspx页面装载了各种xsl和xslt功能。创建了几个xsl模板,其中一个包含将在使用.aspx时显示的HTML。这个模板被SharePoint命名为'dvt_1 '。然后在<xsl:for-each select="$Rows">
xsl结构中调用该模板。
在disform页面上调用的模板中,通过使用
显示每个数据。 <td>
<div>
<xsl:value-of select="@fieldName" />
</div>
</td>
当页面呈现时,'value-of'标签将被指定的任何字段(当然)的内容所替换。
在我的例子中,由于Design Requirements文档,我所询问的字段将包含'yes'或" .
如果它是yes,我想在那里放一个字符表示'yes '。否则,我想在那里放一个不同的字符,表示'不是'。
我不知道如何将渲染值转换为选择构造。
我试过像
<td>
The answer is: <script> if (<xsl:value-of select="@fieldName" /> == 'yes') {
document.write('A');
} else {
document.write('B');
}
</script>
</td>
但是XSL标签没有被识别。
我对xsl非常陌生,虽然我开始了解语法是如何完成任务的,但它对我来说仍然非常神秘。
既然你没有提供给我们太多信息,这是我能给的最好的答案了。
如答案所示:
生成字符串$s1 if的更通用的XPath 1.0表达式$val为"x",如果$val为"y"则产生字符串$s2:
concat(substring($s1, 1 div ($val = "x")),
substring($s2, 1 div ($val = "y"))
)
如果我对你的问题理解正确的话,这个原则可以用来生成预期的答案。要查看这一点,请查看以下示例:
假设:
-
"yes"
的值应该输出字符"a"
-
""
的值应该输出字符"b"
当此XSLT(使用上述XPath):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes" method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="e">
<xsl:text>The value is: </xsl:text>
<xsl:value-of
select="concat(substring('a', 1 div (@fldNm = 'yes')),
substring('b', 1 div (@fldNm = ''))
)"/>
<xsl:text/>
</xsl:template>
</xsl:stylesheet>
…
<t>
<e fldNm="yes"/>
<e fldNm=""/>
</t>
…生成所需的结果:
The value is: a
The value is: b
使用:
substring('yx', 1 + (@fldNm = 'yes'), 1)
如果(上下文节点的)属性"fldNm"的值为"yes",则该表达式的求值产生字符"x",否则求值产生字符"y"。
这里我们使用了这样一个事实:根据定义:
number(true()) = 1
和
number(false()) = 0
- d3基于用户选择动态更新节点
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 基于两个条件退出While循环
- 基于粒子的粘弹性流体表面张力问题
- 如何放置'选择'基于angularJS中数据的html选项
- 基于localStorage的Meteor激活模板
- 基于数据类型的编辑框的汇总列表
- 有没有一种方法可以仅使用HTML/CSS来隐藏基于特定值的数据单元格
- 更改基于它的Select OPTION's INDEX(Jquery)
- 具有大型几何图形的基于沙发的空间查询
- 基于窗口宽度jquery的函数的替代方法是什么
- 基于下拉菜单创建开关
- 基于api密钥的NodeJS web服务
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- 使用基于文本的 Jquery 选择选项
- 基于其他下拉菜单选择隐藏/显示下拉菜单
- 基于数据元素限制动态表单字段
- 基于Web的JS调试库
- 生成xsl:fo的任何javascript(基于web的)所见即所得编辑器
- 有条件显示2个字符中的1个.S基于xsl:value-of