【问题标题】:Stay in the same Wizard Step after clicking Next Step单击下一步后停留在同一个向导步骤中
【发布时间】:2019-11-08 03:01:40
【问题描述】:

尝试使用 SAPUI5 创建向导,例如,当我单击步骤 2 时,我找不到如何阻止向导进入下一步。我需要检查一些东西,但我不想隐藏第 2 步按钮,我想在点击后进行验证。

我的向导步骤:

<WizardStep id="step1" validated="true" title="Step1" complete="goToTwo"></WizardStep>

我已尝试在 goToTwo 函数中使用此功能以获得完整的方法,以防止向导进入下一步,但它不起作用:

goToTwo: function (oEvent) {
        var cntrlStep1 = this.getView().byId("step1");
        this.getView().byId("wizard").goToStep(cntrlStep1);
    },

【问题讨论】:

    标签: javascript sapui5 wizard


    【解决方案1】:

    一个可能的解决方案是更改您的向导步骤的validated 属性。 我假设您想从未验证状态开始,以确保用户无法进入第 2 步,除非验证完成:

    在这种情况下,您可以从 validated = false 开始:

    <WizardStep id="step1" validated="false" title="Step1" complete="goToTwo"></WizardStep>
    
    

    或者如果你想在 JS 中设置验证属性:

    在 JS 中

    var step1 = this.getView().byId('step1');
    step1.setValidated(false);
    

    验证完成后,您可以将已验证状态设置为 true,然后可以继续执行第 2 步

    var step1 = this.getView().byId('step1');
    step1.setValidated(true);
    

    【讨论】:

    • 如果我想隐藏下一步按钮并仅在验证完成时显示它,这将是解决方案。但我想做的是始终显示下一步,然后在我点击它时进行验证。
    • 嗯,编写自己的自定义向导步骤怎么样?
    【解决方案2】:
    goToTwo: function(oEvent){
      var step = this.byId("step1");
      var wizard = this.byId("wizard");
      if (you need to put your validation here){
         wizard .discardProgress(step);
         oEvent.destroy();
    
      }
    }
    

    【讨论】:

    • 而不是 oEvent.destroy();你可以写 step.fireComplete();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2019-04-18
    • 1970-01-01
    相关资源
    最近更新 更多