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

Posted

技术标签:

【中文标题】如何使用客户端脚本设置 Dojo 列表文本框的标签和值【英文标题】:How to set the Label & Value of a Dojo List Text Box using client side script 【发布时间】:2014-03-27 10:57:37 【问题描述】:

我可以使用下面的脚本设置“值”。

<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>

【问题讨论】:

你能用'displayedValue'来做一个.set("displayedValue", "Value")吗? 那很好,但不幸的是没有(试过了)。因为这是 extLib 提供的,所以我猜他们有一个扩展的方法,但我找不到它。它必须像 ...set("Value1,Value2", "Label2,Label2") 【参考方案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>

【讨论】:

以上是关于如何使用客户端脚本设置 Dojo 列表文本框的标签和值的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 Dojo 组合框的宽度

如何设置绑定到文本框的标签的可见性?

列表框控件的 Dojo/HTML 等效项

dojo-获取下拉框的值和文本

如何用css设置文本框的宽和高?

Dojo:dojo onblur 事件