简单的隐藏/显示行为...。最佳实践?

时间:2018-12-12 20:58:33

标签: xpages

令人尴尬的是,我经常遇到这些“ newby”问题,因为我迟迟没有参加XPages牛仔竞技比赛。请保持温柔。

这是BASIC功能,需要具有一个最初隐藏在新页面上的字段,直到将另一个组合框设置为某个值为止(请考虑任何通用的“其他”字段,仅当选择“其他”时才显示)在主字段中。)

看..我的面板:

      <xp:panel
            id="mod"
            rendered="#{javascript:document1.getItemValueString('approval') === 'modify'}">
            <div class="container">
                <div class="row">
                    <div class="col-md-8">
                        <div class="form-group">
                            <label for="modification">
                                Describe modification
                            </label>
                            <xe:djTextarea
                                id="modification"
                                styleClass="form-control"
                                cols="185"
                                rows="25">
                            </xe:djTextarea>
                        </div>
                    </div>
                </div>
            </div>
        </xp:panel>

然后,我的组合框(请参阅onchange):

<xp:comboBox
id="approval"
styleClass="form-control"
style="width:400px;">
<xp:this.onchange>
    <![CDATA[XSP.partialRefreshPost("#{id:mod}");]]>
</xp:this.onchange>
<xp:selectItem
    itemLabel="Select one"
    itemValue="">
</xp:selectItem>
<xp:selectItem
    itemLabel="Approve"
    itemValue="approve">
</xp:selectItem>
<xp:selectItem
    itemLabel="Modify"
    itemValue="modify">
</xp:selectItem>    

当我在浏览器中更改组合框的值时,在对话框中出现此错误:

enter image description here

我有一种感觉,一旦我对如何处理SSJS和元素ID有了更好的了解,我的工作效率就会大大提高。如果有人链接到一篇很好地解释了这一点的文章,我很想知道。

经过漫长的跋涉之后,问题是如何使部分刷新工作?

一如既往,我们非常感谢您的反馈。

1 个答案:

答案 0 :(得分:2)

问题在于“ mod”面板最初并未呈现,因此onchange事件不可用/不可见。

将“ mod”面板放置在“ modParent”面板中,并使其成为partialRefresh的目标。