p:treeTable和h:selectOneMenu

时间:2015-02-20 16:26:30

标签: jsf primefaces

我有一个<p:treeTable>完全可以作为展示,我打开一个对话框来查看每个节点的详细信息......对话框有一个<h:selectOneMenu>但它无效。我不知道为什么,向我发送错误"Target Unreachable",但如果我将该属性放入<h:outputText>它正在工作(这意味着它不是空的)。发生了什么事?

<p:row>
    <p:column colspan="4" style="width:800px">
        <p:dialog id="edit" widgetVar="edit" header="Edit" showEffect="clip"
                  hideEffect="explode" position="center,center" width="520" modal="true" closable="false"
                  closeOnEscape="true" resizable="false" dynamic="true">
            <h:panelGrid width="100%">
                <p:row>
                    <p:column >
                        Name
                    </p:column>
                    <p:column>
                        <p:inputText value="#{levelBean.selectedLevel.name}" />
                    </p:column>
                </p:row>
                <p:row>
                    <p:column >
                        Description
                    </p:column>
                    <p:column>
                        <p:inputText value="#{levelBean.selectedLevel.description}" />
                    </p:column>
                </p:row>
                <p:row>
                    <p:column >
                        Level
                    </p:column>
                    <p:column>
                        <!-- this its showing OK !! -->
                        <h:outputText value="#{levelBean.selectedLevel.id.idLevel}"/>
                        <!-- this mark target unreachable -->
                        <h:selectOneMenu id="cbo" style="width=200px"
                                         value="#{levelBean.selectedLevel.id.idLevel}" >
                            <f:selectItems value="#{cboLevelBean.list}" var="levelEdit"
                                           itemValue="#{levelEdit.id.idNivel}"
                                           itemLabel="#{levelEdit.name}"
                                           />
                        </h:selectOneMenu>
                    </p:column>
                </p:row>
            </h:panelGrid>
        </p:dialog>

        <p:treeTable id="treeTableLevels" value="#{levelBean.root}" var="subLevel" style="width:800px">
            <f:facet name="header">
                Levels
            </f:facet>
            <p:column headerText="#{subLevel.object.levelName}">
                <h:outputText value="#{subNivel.object.nameSubLevel}" />
            </p:column>
            <p:column style="width:24px">
                <p:commandLink update=":levelsForm:edit" oncomplete="PF('edit').show()" title="Level Detail" styleClass="ui-icon ui-icon-search">
                    <f:setPropertyActionListener value="#{subLevel}" target="#{levelBean.selectedLevel}" />
                </p:commandLink>
            </p:column>
        </p:treeTable>
    </p:column>
</p:row>

感谢您的帮助!!

1 个答案:

答案 0 :(得分:-1)

我喜欢这个原因......我只是把选择菜单改成另一种形式而且它有效..但我不知道为什么......有人可以解释一下吗?

<h:form id="someform">
    <p:selectOneMenu id="cbo" style="width: 200px"
                     value="#{levelBean.selectedLevel.id.idLevel}">

        <f:selectItems value="#{cboLevelBean.list}" var="levelEdit"
                       itemValue="#{levelEdit.id.idNivel}"
                       itemLabel="#{levelEdit.name}"/>
    </p:selectOneMenu>
</h:form>
无论如何,希望对别人有所帮助!