如果数据库中的值为 1,则检查 XSL 复选框显示
Posted
技术标签:
【中文标题】如果数据库中的值为 1,则检查 XSL 复选框显示【英文标题】:XSL checkbox display checked if value is 1 from database 【发布时间】:2014-03-10 04:05:11 【问题描述】:如何在 xsl 中读取复选框值? 我有一个从数据库中读取的值,根据该值,该复选框将被选中或取消选中。 我有这个片段,但即使 database_column 值为 1,复选框也不会检查。
<xsl:template.....>
<form....>
<input type="checkbox" id="functional_test" name="DATABASE_COLUMN">
<xsl:if test="//DATABASE_COLUMN='1'">
<xsl:attribute name="checked">checked</xsl:attribute>
</xsl:if>
</input>
</form>
</xsl:template>
编辑: 我也有检索 textarea 值的问题。这个 textarea 值实际上来自一个选择选项。但是当从数据库中检索到这个值时,我不知道为什么这个值没有出现。 我的代码如下所示:
<label class="control-label Mandatory" for="txtRecommendedAction"> Recommended Action*
<button type="button" class="btn btn-default" href="#modalRecommended" data-toggle="modal"> Retrieve </button>
</label>
<textarea class="form-control" id="txtRecommendedAction" name="recommended_action" rows="6" value="//RECOMMENDED_ACTION"/>
它只是没有在文本区域中显示正确的值。知道我错过了什么吗?
【问题讨论】:
XSLT 将 source 树转换为 result 树。您的源 XML 在哪里?您在上面编写的 XPath 表达式将查找名为<p><xsl:value-of select="//DATABASE_COLUMN"/></p>
。然后你就会知道里面到底有什么——或者你的 xPath 表达式是否真的在获取任何东西。
另外 - 甚至最好 - 在输入上运行 身份转换模板。这将按原样复制输入 - 您可以将结果用作编写样式表并对其进行测试的参考。
【参考方案1】:
我知道回答自己的问题很奇怪,但在研究了以下代码后确实有所帮助:
<xsl:element name="input">
<xsl:attribute name="type">radio</xsl:attribute> <!-- or checkbox -->
<xsl:attribute name="name">needModeration</xsl:attribute>
<xsl:attribute name="value">true</xsl:attribute>
<xsl:if test="contains(needModeration,'true')"> <!-- just change this variable-->
<xsl:attribute name="checked">
</xsl:attribute>
</xsl:if>
</xsl:element>
在我的 html 中,它确实根据值进行检查或取消检查。 :D
我从这个论坛得到了答案: http://forums.asp.net/t/1036574.aspx
【讨论】:
回答自己的问题并不奇怪。如果您已经设法自己找出答案,那么提交(并接受)您自己的答案是正确的做法。以上是关于如果数据库中的值为 1,则检查 XSL 复选框显示的主要内容,如果未能解决你的问题,请参考以下文章
如果文本框的值为 0,则 jQuery Checkbox 为真,但如果文本框为空白,则为假 [重复]
如果数值数据类型列 Pandas 数据框中的值为 str,则打印索引和值