SAP UI5价值帮助仅适用于Smartfield

时间:2018-08-06 01:43:54

标签: sapui5

我有一个带有value-list注释的 smartfield 。 我希望它的行为使该字段的文本输入被禁用,因此,当用户单击该字段并从有效列表中进行选择时,该用户将被迫打开值帮助-就像{的valueHelpOnly属性一样{1}}。我一直在寻找sap.m.Input的类似物业,但似乎没有一个物业?

如果没有为此的标准属性,那么验证smartfield的输入值与有效值帮助值的最佳方法是什么? 预先感谢。

enter image description here

3 个答案:

答案 0 :(得分:0)

我有一个解决方法,如果有人有更好的解决方案,那么请建议我

  • 向您package com.company.testApp; import android.content.Intent; import com.facebook.react.ReactActivity; public class MainActivity extends ReactActivity { /** * Returns the name of the main component registered from JavaScript. * This is used to schedule rendering of the component. */ @Override protected String getMainComponentName() { return "testApp"; } // react-native-fbsdk @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); MainApplication.getCallbackManager().onActivityResult(requ estCode, resultCode, data); } } 添加class,然后使用SmartField获得class并将ID属性添加到disabled标记

SmartField input

答案 1 :(得分:0)

您必须使用SmartField的事件jmdns.unregisterService(event.getInfo());,然后检查是否为Input并调用方法innerControlsCreated

setValueHelpOnly(true)

注意:此代码是示例,您需要检查是否为onInnerControlsCreated: function (oEvent){ oEvent.getParameters()[0].setValueHelpOnly(true); } ,并避免对参数数组上的索引访问进行硬编码。

答案 2 :(得分:0)

您需要执行以下步骤。假设您像这样定义SmartField

<smartField:SmartField value="{XXX}" textInEditModeSource="ValueList" innerControlsCreated="onControlCreated">
    <smartField:configuration>
        <smartField:Configuration preventInitialDataFetchInValueHelpDialog="false" displayBehaviour="idAndDescription"/>
    </smartField:configuration>
</smartField:SmartField>

当然,您已经定义了需要的注释,该注释显示值列表itsm。像这样:

<Annotations Target="Metadata.YourEntityName/XXX">
    <Annotation Term="Common.Text" Path="Planttxt">
        <Annotation Term="UI.TextArrangement" EnumMember="UI.TextArrangementType/TextLast"/>
    </Annotation>
    <Annotation Term="Common.ValueListWithFixedValues" Bool="false"/>
    <Annotation Term="Common.ValueList">
        <Record>
            <PropertyValue Property="CollectionPath" String="XxxSet"/>
            <PropertyValue Property="Parameters">
                <Collection>
                    <Record Type="Common.ValueListParameterInOut">
                        <PropertyValue Property="LocalDataProperty" PropertyPath="XXX"/>
                        <PropertyValue Property="ValueListProperty" String="Id"/>
                    </Record>
                    <Record Type="Common.ValueListParameterDisplayOnly">
                        <PropertyValue Property="ValueListProperty" String="Name"/>
                    </Record>
                </Collection>
            </PropertyValue>
        </Record>
    </Annotation>
</Annotations>

我们定义了一个innerControlsCreated="onControlCreated"处理程序,我们需要在相关控制器中提供该代码:

/** 
* event fired by innerControlsCreated of SmartField
* @param {sap.ui.base.Event} oEvent pattern match event
*/
onControlCreated: function (oEvent) {
    if (oEvent.getParameters()[0] instanceof sap.m.Input && oEvent.getParameters()[0].getShowValueHelp()) {
        // set ValueHelpOnly for Inputs with ValueHelp
        oEvent.getParameters()[0].setValueHelpOnly(true);
    }
},