gpt4 book ai didi

xpages 根据组合框值隐藏/显示字段

转载 作者:行者123 更新时间:2023-12-02 07:25:31 25 4
gpt4 key购买 nike

我正在使用 <xe:djTabContainer>与 10 <xe:djTabPane>包含许多字段组件。

有一个主要的组合框,其值将决定哪些字段要显示或不显示,从而实现文档结构。

如果我使用这种方法,那么对于我想要显示/隐藏的所有 >50 个字段,我将仅使用 onChange组合框的事件?

考虑到有>50个字段进入此类别<显示和隐藏它们>,我应该使用其他方法/方法吗?谢谢你的时间。

<xp:comboBox value="#{Contr.txt_tipcontractcv}" id="comboBox4">                                 <xp:selectItems id="selectItems1">                                      
<xp:this.value><![CDATA[#{javascript:return ""}]]></xp:this.value>
</xp:selectItems>
<xp:selectItems id="selectItems2">
<xp:this.value><![CDATA[#{javascript:@DbColumn(@DbName(),"SetupvwTipuriContracteC",1);}]]> </xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onchange" submit="false"> <xp:this.script><![CDATA[XSP.partialRefreshPost("#{id:FisaP}", {
});
]]></xp:this.script> </xp:eventHandler> </xp:comboBox>

和面板:

<xp:panel id="FisaP">
<xp:label id="label4"
style="color:rgb(128,0,0);font-family:verdana;font-size:9pt;font-weight:bold">
<xp:this.value><![CDATA[#{javascript:"Fisa contract "+ Contr.getItemValueString("txt_tipcontractcv")}]]></xp:this.value>
<xp:this.rendered><![CDATA[#{javascript:
Contr.getItemValueString("txt_tipcontractcv") != ""
}]]></xp:this.rendered>

</xp:label>

</xp:panel>

最佳答案

我会扭转局面。让标签和字段询问组合框是否应该渲染它们。让组合框的 onchange 事件启动面板的部分刷新,其中包括您想要显示/隐藏的所有字段。

如果您的 >50 个字段都位于一个位置,您可以使用面板将它们框起来并在那里设置渲染属性。

如果您的组合框绑定(bind)到 viewScope 变量,则字段/标签的呈现属性将为

rendered="#{javascript:viewScope.tipcontractcv1 == 'Vanzare-Cumparare'}"

或者如果它绑定(bind)到文档字段,则

rendered="#{javascript:document1.getItemValueString('txt_tipcontractcv1') === 'Vanzare-Cumparare'}"

更新:

根据您答案中的代码 https://stackoverflow.com/a/25636661/2065611请执行以下步骤,使其与 Dojo Tab 容器一起使用:

1.

将标签和字段放在有 ID 但没有具有渲染属性的面板中

<xp:panel id="panel1">
<xp:label value="Persoane spre informare" ... id="label2">
<xp:this.rendered><![CDATA[#{javascript:
Contr.getItemValueString("txt_tipcontractcv1") == "Vanzare-Cumparare"
}]]></xp:this.rendered>
</xp:label>
... other label and fields ...
</xp:panel>

您也可以创建其他面板“panel2”、“panel3”...。它们可以放置在不同的 djTabPanes 中。

2.

更改组合框的 onchange 事件并执行客户端代码来刷新面板

            <xp:eventHandler
event="onchange"
submit="false">
<xp:this.script><![CDATA[
XSP.partialRefreshPost("#{id:panel1}", {
onComplete: function() {
XSP.partialRefreshPost("#{id:panel2}");
}
});
]]></xp:this.script>
</xp:eventHandler>

3.

如果将具有相同呈现属性的标签和字段放在附加面板中,则可以优化代码

<xp:panel id="panel1">
<xp:panel id="panelRendered1"
<xp:this.rendered><![CDATA[#{javascript:
Contr.getItemValueString("txt_tipcontractcv1") == "Vanzare-Cumparare"
}]]></xp:this.rendered>
<xp:label value="Persoane spre informare" ... id="label2" />
... other label and fields ...
</xp:panel>
</xp:panel>

关于xpages 根据组合框值隐藏/显示字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25619967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com