输入显示所有建议和强制选择建议
sap.m.input show all suggestion and forced choose suggestion
预期行为:
1)用户点击输入栏,显示所有值的列表
2)当用户输入至少3个字符
时开始过滤3)如果用户被迫从建议中选择(他不能提供建议列表中没有的价值)。
到目前为止,我有以下控件在视图中:
this.transmitter = new sap.m.Input({
id : this.createId("transmitterControl"),
// placeholder : "Enter emiter ...",
showSuggestion : true,
suggest : oCon.handleSuggestTransmitter,
suggestionItems:{
path:"/services",
template: new sap.ui.core.Item({text:"{serviceName}", key:"{serviceId}"})
},
startSuggestion : 3,
suggestionItemSelected : function(evt) {
oCon.onSuggestionTransmitterSelected(evt);
},
}).addStyleClass("font_bold")
对于控制器:
onSuggestionTransmitterSelected : function (e) {
var selectedTransmitter = e.getParameter("selectedItem").getBindingContext().getObject();
this.serviceData.transmitter = selectedTransmitter;
},
showAllSuggestion : function (transmiterAutoComplete) {
console_log("showAllSuggestion");
transmiterAutoComplete.getBinding("suggestionItems");
},
handleSuggestTransmitter: function(e) {
var sTerm = e.getParameter("suggestValue");
var aFilters = [];
if (sTerm) {
aFilters.push(new sap.ui.model.Filter("serviceName", sap.ui.model.FilterOperator.StartsWith, sTerm));
}
e.getSource().getBinding("suggestionItems").filter(aFilters);
},
dis付费建议工作,当我输入3个字符,弹出显示和过滤可以完成。
我错过了什么:A)在输入字段上单击显示整个列表。B)强制选择(不知道)
我试过设置startSuggestion: 0,但是它不起作用。根据文档,它应该显示带有建议的弹出框onClick:
https://sapui5.hana.ondemand.com/docs/api/symbols/sap.m.Input.html getStartSuggestion
getStartSuggestion(): int获取属性的当前值startSuggestion。输入前输入文本的最小长度建议事件被触发。默认值为1,即建议值事件在用户输入后触发。当设置为0时,建议当没有文本的输入获得焦点时触发事件。
默认值为1。
我还尝试附加onfocusin事件。它工作了,处理程序被调用,但我不知道我应该调用什么方法来显示建议弹出列表。
transmiterAutoComplete.addEventDelegate({
onfocusin : function(){
console_log("testTransmiterComplete");
app.getCurrentController().showAllSuggestion(transmiterAutoComplete);
}
});
根据您的描述,这个示例将涵盖您的大部分需求。然而,它的工作原理就像一个弹出窗口。如果这不是你想要的,你应该继续这样做。在事件委托中,你必须调用"handleSuggestTransmitter"。我会稍微改变一下,这样你就可以调用它而不需要输入,然后它会返回所有。接下来,您需要对输入进行验证,以验证该输入是否存在于列表中。下面是一个如何设置字段状态的示例。
顺便说一下,你为什么使用JavaScript视图?
- 根据用户从下拉列表中的选择显示多个文本框
- 根据页面加载时的单选按钮选择显示某些字段
- 根据组合框选择显示特定数据
- 从项目列表Jquery中仅选择(显示:块)元素
- 根据用户复选框选择显示或隐藏下拉框
- 根据以前的选择显示选择选项
- 如何选择显示值而不是value选项
- 根据asp.net中下拉框中的选择显示文本框
- 根据单选按钮的选择显示HTML表单
- 缩小后的大图像上的Jcrop圆形选择显示预览选择区域中的全尺寸图像
- 按数字选择显示输入
- 基于下拉选择显示/隐藏控件mvc 4 razor c#
- 角度选择显示名称和项目
- 获取值并根据用户在 Javascript 上的选择显示
- 根据选择显示表格/表单
- 根据下拉选择显示文本
- 为什么选择显示显示值而不是标签
- 多个文本字段,根据单选选择显示/隐藏(Html,JS)
- 基于多个单选按钮选择显示或隐藏元素
- 根据在选择框中所做的选择显示文本