如何制作dojox.form.Raiting readOnly

时间:2014-08-06 06:36:10

标签: dojo xpages

我有一个要求,用户需要对响应进行评级;为此,我尝试了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>

2 个答案:

答案 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>