我有一个文本控件my-text
和一个下拉菜单my-dropdown
。根据{{1}}的内容,my-text
的项目集应更改。不幸的是,单个下拉菜单项没有my-dropdown
属性,因此我想到了一个不同的解决方案。在我的Orbeon表单的visibility
标签内,我定义了几个项目集:
<resource xml:lang="en">
现在,如果<first-itemset>
<item>
<label>AAA</label>
<value>a</value>
</item>
<item>
<label>BBB</label>
<value>b</value>
</item>
</first-itemset>
<second-itemset>
<item>
<label>XXX</label>
<value>x</value>
</item>
<item>
<label>YYY</label>
<value>y</value>
</item>
</second-itemset>
的内容等于“第一个项目集”,则应使用第一个项目集,否则使用第二个。我怎样才能做到这一点?
在my-text
内部,我需要
<fr:dropdown-select1 ...>
我需要写些什么而不是CONTENT_OF_MY-TEXT_HERE来获取实际内容,以便orbeon使用正确的项目集?
答案 0 :(得分:1)
您问题的直接答案是:*[local-name() = xxf:value('choice-control')]
。因此,您将拥有:
<xf:itemset
ref="
$form-resources/
*[local-name() = xxf:value('choice-control')]/
item
">
这样,您将获得一个不同的项集,具体取决于在choice
控件中键入的值:
但是,请记住,如果您在Form Builder中执行此操作,则对源所做的更改很容易丢失。例如,下次更改控件名称时,该ref
表达式将被重置。因此,最好找到另一种方法来实现这一目标。例如,您可能有2个下拉菜单,根据另一个字段中的值输入器,在任何时间点只有一个下拉菜单可见。