xe:djextListTextBox 控件为具有类似 aliases/synonyms 的字段显示错误值
xe:djextListTextBox control displays wrong value for fields with similar aliases/synonyms
我最近发现 xe:djextListTextBox
控件使用 xe:valuePicker
来处理具有 synonyms/aliases 的值时存在问题。如果绑定到不同字段的选择器之间的同义词相似,当 select 输入第一个字段的值时,select 输入第二个字段的匹配值会显示第一个 [=27] 中的文本=]ion.
例如,选择器 #1 有 3 个值 aliases/synonyms:蓝色|1、绿色|2、黄色|3。 Picker # 2 有 3 个不同的值但同义词相同:red|1, orange|2, purple|3.
如果我 select 选择器 #1 显示“蓝色”,它会显示“蓝色”。然后,当我 select 选择器 #2 显示“红色”时,它显示的不是“红色”,而是“蓝色”。
好消息是,当保存文档(正确保存同义词)并以读取模式重新打开时,这两个字段会正确显示正确的值。问题似乎是在编辑模式下。有没有人以前遇到过这个问题并知道修复方法?
这里是测试代码:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.data>
<xp:dominoDocument var="doc1" />
</xp:this.data>
<p>
k1
<xe:valuePicker for="k1" pickerText="add">
<xe:this.dataProvider>
<xe:simpleValuePicker valueList="blue|1;green|2;yellow|3" labelSeparator="|" valueListSeparator=";" />
</xe:this.dataProvider>
</xe:valuePicker>
</p>
<p>
<xe:djextListTextBox id="k1" value="#{doc1.k1}"
displayLabel="true" multipleSeparator=";" multipleTrim="true" />
</p>
<p>
k2
<xe:valuePicker for="k2" pickerText="add">
<xe:this.dataProvider>
<xe:simpleValuePicker valueList="red|1;orange|2;purple|3" labelSeparator="|" valueListSeparator=";" />
</xe:this.dataProvider>
</xe:valuePicker>
</p>
<p>
<xe:djextListTextBox id="k2" value="#{doc1.k2}"
displayLabel="true" multipleSeparator=";" multipleTrim="true" />
</p>
</xp:view>
我最终用 HCL 开了一张票,他们建议的解决方法是向 djextListTextBox
添加一个 onChange
事件以刷新它的值。我对它并不满意,因为我有很多领域,而且它会影响性能,但它确实有效。
<xp:div id="refreshTarget">
...
<p>
<xe:djextListTextBox id="k1" value="#{doc1.k1}" style="font-size:smaller"
displayLabel="true" multipleSeparator=";" multipleTrim="true">
<xp:eventHandler event="onChange" submit="true" refreshMode="partial"
refreshId="refreshTarget" />
</xe:djextListTextBox>
</p>
</xp:div>
我最近发现 xe:djextListTextBox
控件使用 xe:valuePicker
来处理具有 synonyms/aliases 的值时存在问题。如果绑定到不同字段的选择器之间的同义词相似,当 select 输入第一个字段的值时,select 输入第二个字段的匹配值会显示第一个 [=27] 中的文本=]ion.
例如,选择器 #1 有 3 个值 aliases/synonyms:蓝色|1、绿色|2、黄色|3。 Picker # 2 有 3 个不同的值但同义词相同:red|1, orange|2, purple|3.
如果我 select 选择器 #1 显示“蓝色”,它会显示“蓝色”。然后,当我 select 选择器 #2 显示“红色”时,它显示的不是“红色”,而是“蓝色”。
好消息是,当保存文档(正确保存同义词)并以读取模式重新打开时,这两个字段会正确显示正确的值。问题似乎是在编辑模式下。有没有人以前遇到过这个问题并知道修复方法?
这里是测试代码:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.data>
<xp:dominoDocument var="doc1" />
</xp:this.data>
<p>
k1
<xe:valuePicker for="k1" pickerText="add">
<xe:this.dataProvider>
<xe:simpleValuePicker valueList="blue|1;green|2;yellow|3" labelSeparator="|" valueListSeparator=";" />
</xe:this.dataProvider>
</xe:valuePicker>
</p>
<p>
<xe:djextListTextBox id="k1" value="#{doc1.k1}"
displayLabel="true" multipleSeparator=";" multipleTrim="true" />
</p>
<p>
k2
<xe:valuePicker for="k2" pickerText="add">
<xe:this.dataProvider>
<xe:simpleValuePicker valueList="red|1;orange|2;purple|3" labelSeparator="|" valueListSeparator=";" />
</xe:this.dataProvider>
</xe:valuePicker>
</p>
<p>
<xe:djextListTextBox id="k2" value="#{doc1.k2}"
displayLabel="true" multipleSeparator=";" multipleTrim="true" />
</p>
</xp:view>
我最终用 HCL 开了一张票,他们建议的解决方法是向 djextListTextBox
添加一个 onChange
事件以刷新它的值。我对它并不满意,因为我有很多领域,而且它会影响性能,但它确实有效。
<xp:div id="refreshTarget">
...
<p>
<xe:djextListTextBox id="k1" value="#{doc1.k1}" style="font-size:smaller"
displayLabel="true" multipleSeparator=";" multipleTrim="true">
<xp:eventHandler event="onChange" submit="true" refreshMode="partial"
refreshId="refreshTarget" />
</xe:djextListTextBox>
</p>
</xp:div>