如何使文本区域为空

时间:2019-05-21 08:24:26

标签: textarea sapui5

我希望在我按下“确定”按钮后文本区域为空

我尝试了这一行this.byId(“ id”)。setValue(“”)

onWorkInProgress: function (oEvent) {
    if (!this._oOnWorkInProgressDialog) {
        this._oOnWorkInProgressDialog = sap.ui.xmlfragment("WIPworklist", "com.sap.FinalAssestments.view.WorkInProgress", this);

        /*  this.byId("WIP").value = "";
            //this.byId("WIP").setValue();*/

        this.getView().addDependent(this._oOnWorkInProgressDialog);
    }

    var bindingPath = oEvent.getSource().getBindingContext().getPath();
    this._oOnWorkInProgressDialog.bindElement(bindingPath);

    this._oOnWorkInProgressDialog.open();
},

//function when cancel button inside the fragments is triggered
onCancelApproval: function () {
    this._oOnWorkInProgressDialog.close();
},

//function when approval button inside the fragments is triggered
onWIPApproval: function () {
    this._oOnWorkInProgressDialog.close();
    MessageToast.show(this.getView().getModel("i18n").getResourceBundle().getText("wipSuccess"));
},

该文本区域将显示在片段中。我希望该文本区域为空

3 个答案:

答案 0 :(得分:2)

如果您以这种方式实例化片段:

sap.ui.xmlfragment("WIPworklist", "com.sap.FinalAssestments.view.WorkInProgress", this);

您可以通过以下方式访问其控件:

sap.ui.core.Fragment.byId("WIPworklist", "WIP").setValue("");

来源:How to Access Elements from XML Fragment by ID


更好的方法是使用视图模型。模型应具有属性textAreaValue或类似的属性。

然后将该属性绑定到您的TextArea(<TextArea value="{view>/textAreaValue}" />)。如果您使用代码更改值(例如this.getView().getModel("view").setProperty("/textAreaValue", "");,它将自动在弹出窗口中显示新值。

它同时具有两种作用:如果用户更改了文本,它将在视图模型中自动更新,因此您可以使用this.getView().getModel("view").getProperty("/textAreaValue");

访问新值

答案 1 :(得分:0)

我假设以下代码链接到“确定”按钮,但是如果没有您的XML,我只能猜测。

//function when approval button inside the fragments is triggered
onWIPApproval: function () {
    this._oOnWorkInProgressDialog.close();
    MessageToast.show(this.getView().getModel("i18n").getResourceBundle().getText("wipSuccess"));
},

假设WIP是您已分配给id控件的TextArea, 在函数中添加以下内容,应该可以帮助您获得所需的内容:

sap.ui.core.Fragment.byId("WIPworklist", "WIP").setValue("");

答案 2 :(得分:0)

我想你几乎拥有了。只是把 this.byId("WIP").setValue("")块之后的if()行。由于您是将片段作为视图的依赖项添加,因此this.byId("WIP")每次打开WIP片段并将其值设置为空白时,都会找到ID为"WIP"的控件。

您现在可能没有实现它,因为A.它尚未取决于您的视图,而B.它仅在第一次复飞时被开除。