如何设置标签&使用客户端脚本的Dojo列表文本框的值

How to set the Label & Value of a Dojo List Text Box using client side script

本文关键字:脚本 客户端 Dojo 列表 文本 何设置 设置 标签      更新时间:2023-09-26

我可以使用下面的脚本设置"value"。

<xe:djextListTextBox id="inputText" value="#{document1.FormTitle}" displayLabel="true" multipleSeparator="##"></xe:djextListTextBox>
<xp:button value="Set Value" id="b1">
    <xp:eventHandler event="onclick" submit="false">
        <xp:this.script><![CDATA[var id = "#{id:inputText}";
        dijit.byId( id ).set( "value", "Value 1##Value 2" );        
        ]]></xp:this.script>
    </xp:eventHandler>
</xp:button>

但是我想做的是设置一个标签来显示,并在背景中有另一个值。基本上复制了下面显示的功能。

<xe:djextListTextBox id="djextListTextBox14" multipleSeparator="," multipleTrim="true" defaultValue="1,3" value="#{document1.Test}"
    displayLabel="true" title="Multiple Values with labels">
</xe:djextListTextBox>
<xe:valuePicker id="valuePicker15" for="djextListTextBox14" pickerText="Add" dojoType="extlib.dijit.PickerListSearch">
    <xe:this.dataProvider>
        <xe:simpleValuePicker labelSeparator="|" valueList="Value1|1,Value2|2,Value3|3,Value4|4" valueListSeparator=","></xe:simpleValuePicker>
    </xe:this.dataProvider>
</xe:valuePicker>

您可以使用

在客户端为xe:djextListTextBox定义标签
dijit.byId(id).set("labels", {"value1":"label1","value2":"label2",...});

你的例子看起来像这样:

<xe:djextListTextBox id="inputText" value="#{document1.FormTitle}" 
      displayLabel="true" multipleSeparator="##">
</xe:djextListTextBox>
<xp:button value="Set Value" id="b1">
    <xp:eventHandler event="onclick" submit="false">
        <xp:this.script><![CDATA[
            var id = "#{id:inputText}";
            dijit.byId(id).set("labels", {"Value 1":"Label 1", "Value 2":"Label 2"});
            dijit.byId(id).set("value", "Value 1##Value 2");        
        ]]></xp:this.script>
    </xp:eventHandler>
</xp:button>