0

检票口版本:1.6.11

假设我Textfield在动态向导页面上有一个启用 Ajax 的组件。当我单击该组件时,我想禁用向导按钮栏上的“下一步”按钮,直到用户按下回车键。

在浏览了各种向导类的代码之后WizardButtonBar,我认为使用向导按钮的标准实现是不可能的。

只是在这里问这个问题,如果我错了,有人可以纠正我,或者提出上述替代方案。

4

2 回答 2

0

您的 WizardStep 可以使用 #setComplete()/#isComplete() 来控制是否启用下一个按钮。

在 textField 上使用 AjaxFormComponentUpdatingBehavior,在 #onUpdate() 中将整个向导添加到 AjaxRequestTarget,以便更新向导的按钮。

于 2013-11-07T20:21:19.947 回答
0

好吧,为了其他需要帮助的人的利益。这就是我所做的。在包含 TextField 的类中,我传入了 Wizard 模型,该模型包含对各种组件的引用,例如 Wizard Form。使用它我可以获得默认的向导按钮,并将其设置为启用或不可见。

    Component label = new TextField<String>("paramText", new PropertyModel<String>(model, valueProperty));

    label.add(new AjaxFormComponentUpdatingBehavior("onchange") { 

        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            Form wizardForm = wizardModel.getWizard().getForm();
            Button nextButton = (Button)wizardForm.getDefaultButton();
            nextButton.setVisible(false);

            target.add(nextButton);
            target.add(wizardForm);
            target.add((Wizard)wizardModel.getWizard());
            target.add(containerPanel);
        }
    });
于 2013-11-08T12:11:08.880 回答