我有一个带有value-list
注释的 smartfield 。
我希望它的行为使该字段的文本输入被禁用,因此,当用户单击该字段并从有效列表中进行选择时,该用户将被迫打开值帮助-就像{的valueHelpOnly
属性一样{1}}。我一直在寻找sap.m.Input
的类似物业,但似乎没有一个物业?
如果没有为此的标准属性,那么验证smartfield
的输入值与有效值帮助值的最佳方法是什么?
预先感谢。
答案 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);
}
},