Как установить метку и значение текстового поля списка Dojo, используя скрипт на стороне клиента
Я могу установить "значение", используя скрипт ниже.
<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>
1 ответ
Решение
Вы можете определить метки для 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>