SAPUI5表单动态添加标签和输入并为输入设置ID,但不起作用

时间:2018-08-28 03:31:31

标签: javascript xml sapui5

我正在创建一个应用程序,使用户可以动态添加新标签并将其输入到表单中。但是我已经设置了新的输入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);

    }

1 个答案:

答案 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
        }));