我有一个要求,用户需要对响应进行评级;为此,我尝试了dojox.form.Rating小部件。
到目前为止工作正常,但是,我还需要提供只读平均评分。
我已根据http://dojotoolkit.org/api/尝试禁用= true或禁用=已禁用,但是,它无效。
我也尝试在带有ReadOnly属性的xp:panel中包装这个div,但我仍然可以从中选择一个值。
<div id="rateControl" dojoType="dojox.form.Rating" numStars="5"
disabled="true" value="2" class="pull-right">
</div>
答案 0 :(得分:1)
正如迈克尔评论的那样,它不尊重“禁用”属性,并且Domino服务器提供的dojo库中不存在修补的评级小部件。
在我的xInvolve project中,我使用了dojo Rating小部件。对于只读,我刚刚在div中实现了重复控制。您可以在XSnippets project。
中查看代码<xp:div id="ratingReadonly"
styleClass="ratingStarWrapper">
<xp:this.rendered><![CDATA[#{javascript:(! invTools.isRatingEnabled(compositeData))}]]></xp:this.rendered>
<xp:repeat id="repeat1" first="0"
indexVar="starIndex" rows="100" var="starType"
style="display:inline">
<xp:this.value><![CDATA[#{javascript:invTools.getRepeatArray(compositeData)}]]></xp:this.value>
<xp:image id="image2">
<xp:this.url><![CDATA[#{javascript:"/.ibmxspres/dojoroot/dojox/form/resources/images/rating_"+starType+".gif"}]]></xp:this.url>
</xp:image>
</xp:repeat>
</xp:div><!-- end-ratingReadonly -->
此处,invTools.getRepeatArray(compositeData)
包含“完整”和“空”星的数量。例如对于3/5星,它是['full', 'full', 'full', 'empty', 'empty']
答案 1 :(得分:0)
您好dojox.form.Raiting有错误,请参阅bugs.dojo: 你可以使用一个变通方法而不是补丁,你可以使用一个覆盖div,当控件应该只读时,它会被渲染:
<xp:panel id="container">
<xp:panel id="overlay" style="width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 10;"></xp:panel>
<div
id="rateControl"
dojoType="dojox.form.Rating"
numStars="5"
value="2"
class="pull-right">
</div>
</xp:panel>