Primefaces handler to penult tab



我决定在这个组件上使用向导 component.link

我有条件,我应该使用按钮而不是复选框"跳到最后"。如果我按下此按钮没关系,但是当我转到倒数第二个选项卡时,我想生成确认选项卡的内容,

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>

在那里我发现了新问题

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

也许我尝试开发周期。但是我找不到其他解决方案。

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

  2. <p:wizard/> 具有onnextonback事件回调,您可以挂接到这些回调来处理 javascript(或使用 <p:remoteCommand/> 支持 Bean 代码)

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

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。

相关内容

  • 没有找到相关文章

最新更新