Sapui5 如何将组合框的输入设置为只读
在我的一个UI5对话框中,我实现了一个组合框,当屏幕最初加载时,它是不可见的。 在方法Sapui5 如何将组合框的输入设置为只读,sapui5,Sapui5,在我的一个UI5对话框中,我实现了一个组合框,当屏幕最初加载时,它是不可见的。 在方法onAfterRendering中,我首先将输入设置为只读: onAfterRendering:函数(oEvent){ var oShovel=this.getView(“View0200”).byId(“组合铲”); oShovel.$().find(“input”).attr(“readonly”,true); this.setVisibleByListKey(); }, 在此之后,调用方法setVisi
onAfterRendering
中,我首先将输入设置为只读:
onAfterRendering:函数(oEvent){
var oShovel=this.getView(“View0200”).byId(“组合铲”);
oShovel.$().find(“input”).attr(“readonly”,true);
this.setVisibleByListKey();
},
在此之后,调用方法setVisibleByListKey
,属性VisibleSpove
将设置为false
setVisibleByListKey:函数(oEvent){
var-oModel=this.getView(“View0200”).getModel(“Data0200”);
此.setVisibleByListKey1(oModel);
// ...
},
setVisibleByListKey1:函数(oModel){
oModel.setProperty(“/visibleSpoot”,false);
},
属性绑定到“我的组合框”上可见的属性。
由于此行为,渲染后将再次调用方法onAfterRendering
,属性readonly
不可用(因为不可见)
我试图在onInit
或onbeforeredering
中调用set方法,但此时无法更改输入属性(因为再次不可见)
那么,在设置命名的visible属性时,如何将combobox的输入设置为只读?使用UI5控件的方法和属性,而不是使用jquery: 从中借用了以下两种方法:
或者,由于您正在使用属性绑定实现可见性,请对可编辑属性执行相同的操作,例如,
{Data0200>/editablespoot}
解决方案可以是使用sap.m.Select
或为sap.m.Combobox
实现“更改”事件处理程序,并使用类似于以下内容的编码:
handleChange:函数(oEvent){
var oValidatedComboBox=oEvent.getSource();
var sSelectedKey=oValidatedComboBox.getSelectedKey();
var sValue=oValidatedComboBox.getValue();
如果(!sSelectedKey&&S值){
setValueState(“错误”);
setValueStateText(“请输入有效的国家!”);
}否则{
oValidatedComboBox.setValueState(“无”);
}
},
问题是,如果我使用setEditable或setEnabled,我很遗憾无法选择复选框的项目。因为我对SAPUI5编程相当陌生,我想知道我是否在这里遇到了错误,除此之外,我不需要检查输入afterwards@cf.codings那不是你要找的吗?选择控件为“只读”,但仍允许用户选择项目。但如果只有三种选择,或者在用户体验方面会更受欢迎。还是你想继续使用ComboBox?你想了解什么?@boghyonHoffmann我试图了解comobox是否可行,但sap.m.select是一个很好的替代解决方案。现在我将继续使用组合框,因为我实现了对事件更改的反应,以验证输入。
sap.m.Select
是没有编辑选择值能力的组合框的完美替代品。