Drop down menu 使用dijit.菜单(如组合框)选择值

Drop down menu 使用dijit.菜单(如组合框)选择值,drop-down-menu,dojo,xpages,Drop Down Menu,Dojo,Xpages,我从一个视图中获取一个列值列表,并将其输入到一个组合框中,以选择一个值并将其存储在一个字段中。从外观上看,我希望将此列表提供给dijit。菜单我对dojo做得不多,也找不到一个可以为我指明正确方向的示例。您可以使用ExtLib中的下拉按钮,它将提供类似的外观: <xe:dropDownButton id="dropDownButton1"> <xe:this.treeNodes> <xe:basicCo

我从一个视图中获取一个列值列表,并将其输入到一个组合框中,以选择一个值并将其存储在一个字段中。从外观上看,我希望将此列表提供给dijit。菜单我对dojo做得不多,也找不到一个可以为我指明正确方向的示例。

您可以使用ExtLib中的下拉按钮,它将提供类似的外观:

    <xe:dropDownButton
        id="dropDownButton1">
        <xe:this.treeNodes>
            <xe:basicContainerNode>
                <xe:this.label><![CDATA[#{empty viewScope.myValue?"Select a value...":viewScope.myValue}]]></xe:this.label>
                <xe:this.children>
                    <xe:basicLeafNode
                        label="Label 1"
                        submitValue="value1">
                    </xe:basicLeafNode>
                    <xe:basicLeafNode
                        label="Label 2"
                        submitValue="value2">
                    </xe:basicLeafNode>
                </xe:this.children>
            </xe:basicContainerNode>
        </xe:this.treeNodes>
        <xp:eventHandler
            event="onItemClick"
            submit="true"
            refreshMode="partial"
            refreshId="dropDownButton1">
            <xe:this.action><![CDATA[#{javascript:var value=context.getSubmittedValue();
if(value!=null && value!="") viewScope.myValue=value;}]]></xe:this.action>
        </xp:eventHandler>
    </xe:dropDownButton>


这里,
viewScope.myValue
是秘密数据绑定。您必须单独处理数据验证(可能通过InAuthidden组件)。您还可以使用
repeatTreeNode
而不是
beanLeafNode
,这样您就可以计算出选项列表。

您尝试过这里的示例吗?这对repeatTreeNode有效。我尝试设置下拉按钮的样式,使其显示固定宽度并更改背景色,但样式设置似乎对按钮没有任何影响。我也禁用了这个主题,这似乎没什么作用。显然,它工作正常。要设置主按钮的样式,需要首先为
basicContainerNode
设置styleClass。它将为包装按钮的范围设置类。然后您可以使用
.myContainer按钮{…}
作为CSS规则。