UI5中的ComboBox不显示ValueState

时间:2018-11-01 07:32:36

标签: sapui5

组合框未显示错误,警告等状态,并在边框周围高亮显示。但这确实改变了状态。例如,如果它是错误状态,并且如果我尝试在组合框中输入新值,它将在该框附近显示“无效条目”提示。但是,框的边界永远不会以红色突出显示。下面是代码:

XML.view

<core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:l="sap.ui.layout">
<Dialog id......>

    <ComboBox id="combo1" change="cChanged" items="{path: '/results'}">
                <items>
                    <core:Item key="{ID}" text="{Name}"/>
                </items>
    </ComboBox>
</Dialog>

Controller.js

cChanged: function(oEvent) {
        var newval = oEvent.getParameter("newValue");
        var key = oEvent.getSource().getSelectedItem();

        if (newval !== "" && key === null) {
            sap.ui.getCore().byId("combo1").setValueState("Error");
            oEvent.getSource().setValue("");
            sap.m.MessageToast.show("Please select from existing IDs")
            flag = false;
        } else {
            oEvent.getSource().setValueState('None');
        }

1 个答案:

答案 0 :(得分:0)

您还可以通过使用combo1事件来访问oEvent.getSource()控件实例,或者使用byId() from the sap.ui.core.Fragment类而不是sap.ui.getCore().byId()

此外,如果您编写逻辑只是为了验证组合框中用户输入的内容是否有效,请考虑使用sap.m.Select控件替换ComboBox

ComboBoxSelect具有相同的外观,但是Select不允许手动输入。如果您使用属性forceSelection

,它也可以有一个空选项