我正在创建一个应用程序,使用户可以动态添加新标签并将其输入到表单中。但是我已经设置了新的输入ID并启用了false,由用户动态添加。但是当我单击编辑按钮时,启用设置为true。这是行不通的。我的应用程序无法读取我在表单中动态添加的输入ID。
以下是我的示例代码。
添加新标签并输入到我当前的表单中
var _oSF2 = this.getView().byId("Extension_Form");
_oSF2.addContent(new sap.m.Label({
text: "Classification"
}));
_oSF2.addContent(new sap.m.Input({
id : "idExtensionInput1",
text : "text",
enabled: false
}));
将新输入的启用设置为true
handleEditPress: function () {
this.getView().byId("idExtensionInput1").setEnabled(true);
}
答案 0 :(得分:2)
您已将输入添加到无视图。在您的情况下,您只能使用sap.ui.getCore().byId("idExtensionInput1")
访问输入,但是正确的方法是使用this.getView().createId()
并将其添加到正确的视图中。
var _oSF2 = this.getView().byId("Extension_Form");
_oSF2.addContent(new sap.m.Label({
text: "Classification"
}));
<!-- language: lang-js -->
_oSF2.addContent(new sap.m.Input({
id : this.getView().createId("idExtensionInput1"), //Use createId() for this.getView()
text : "text",
enabled: false
}));
handleEditPress: function () {
this.getView().byId("idExtensionInput1").setEnabled(true);
}
一条评论: new sap.m.Input的第一个参数是id。请写:
_oSF2.addContent(new sap.m.Input(this.getView().createId("idExtensionInput1"), {
text : "text",
enabled: false
}));