Treetable每行中的SelectManyMenu无法工作Primefaces

时间:2019-05-11 12:59:20

标签: primefaces treetable selectmanymenu

由于primefaces组件celleditor不支持selectCheckboxMenu,因此我创建了一个自定义的selectCheckboxMenu以模拟此功能。我已经使用overlaypanel和selectManyMenu实现了它。外观与selectCheckBoxMenu相同,但是我面临着一个巨大的问题。当我尝试在树表中首次显示selectManyMenu时,selecteditems为0。这是因为该属性保存的所选项目已用空字符串更新。也许我可以举例说明它,因为我为树表中的每个孩子使用了相同的ID。我只对一个孩子和父母进行了测试,结果是相同的。也许,有一种更好的方法可以实现这一点。欢迎您提出所有建议和想法。

 <ui:define name="content-center">
        <h:form id="form">
                <p:treeTable id="treetable" value="{selectManyView.getRoot()}" var="node"
                             selectionMode="checkbox"
                             nodeVar="treeNode" selection="#{selectManyView.selectedNodes}">

                    <p:column headerText="CalculationType">
                        <p:treeNode rendered="#{node.getNodeType().name() == 'Child'}" style="padding-left:24px;">

                            <h:outputText value="#{selectManyView.transformThemesToString(node)}"
                                          id="calculationTypes"  />

                            <p:commandLink onclick="PF('calc').show()">
                                <i class="ui-icon ui-icon-triangle-1-s ui-c"></i>
                            </p:commandLink>
                            <p:overlayPanel id="calcTypesPanel" hideEffect="fade"
                                            style="width:auto;" widgetVar="calc">
    <p:selectManyCheckbox  value="#{node.calculationTypes}"  >
                                    <p:ajax event="change" listener="#{node.setSelectedCalculationTypes()}" update="calculationTypes"/>
                                    <f:selectItems value="#{selectManyView.tableCalculationTypes()}"/>
                                </p:selectManyCheckbox>
                            </p:overlayPanel>
                        </p:treeNode>
                    </p:column>
                </p:treeTable>
        </h:form>

我希望selectManyMenu具有在托管bean中定义的selecteditem。

0 个答案:

没有答案