1

我决定使用向导组件。此组件上的链接

我有条件,而不是复选框“跳到最后”,我应该使用按钮。如果我按下这个按钮就可以了,但是当我转到倒数选项卡时,我想生成确认选项卡的内容,

public void generatePreview() {

        for (CompetitionTypeBean competitionType : competitionTypeList) {
            if (competitionType.getId().equals(competitionTypeId)) {
                tournamentBean.setCompetitionTypeBean(competitionType);
            }
        }
 if (teamList != null && !teamList.isEmpty()) {
            List<TeamBean> teams = new ArrayList<TeamBean>();
            for (TeamBean team : teamList) {
                for (Long teamId : teamListSelected)
                    if (team.getId().equals(teamId)) {
                        teams.add(team);
                        break;
                    }
            }
            tournamentBean.setTeams(teams);
        }
    }

这意味着我应该skip in true为此设置我决定编写js函数will work on onnext event of wizard

<script type="text/javascript">
        function setHiddenValue(formId, componentId, new_value) {

            var tabId = 'competitionId';
            if (tabId != 'predLast') {
                document.getElementsByName('wiz').next();
            } else {
                var fullComponentId = formId + ":" + componentId;
                document.getElementById(fullComponentId).value = new_value;
            }
        }
    </script>

在那里我发现了新问题

首先我不知道,因为我可以获得当前的 Tab Id。其次,我不知道如何借助帮助 js 为 Wizard 制作下一个事件document.getElementsByName('wiz').next();。我尝试查看生成的 html 代码。每个选项卡都是<li>,当以 css 样式选择此选项卡时,我会添加“ui-state-hightlight”

也许我尝试开发循环。但我找不到其他解决方案。

4

2 回答 2

1
  1. 要在 javascript 中获取当前步骤的索引,请使用该getStepIndex()函数。要获取支持 bean 中当前步骤的名称,您需要在视图中获取对向导的引用,然后调用getStep()(返回id下一个选项卡的属性)或getStepToProcess()(返回实际的下一个Tab对象,您可以从中获取当前选项卡的名称)。

  2. <p:wizard/>具有onnextonback事件回调,您可以使用它们来处理 javascript(或支持 bean 代码<p:remoteCommand/>

于 2013-01-30T15:22:39.643 回答
0

我只是在处理程序中添加下一行

public String onFlowProcess(FlowEvent event) throws Exception {
        if ((skip == true)) {
            skip = false;   //reset in case user goes back
            generatePreview();
            return CONFIRM_TAB_ID;
        } else {
            String newTab = event.getNewStep();
            if (CONFIRM_TAB_ID.equals(newTab)) {
                generatePreview();
            }

            return newTab;
        }
    }

我认为使用常量 CONFIRM_TAB_ID 很正常,因为我从未决定更改此 tabId。

于 2013-02-06T10:35:55.410 回答