从primefaces数据表中删除行会破坏页面

时间:2014-02-17 16:30:21

标签: jsf jsf-2 primefaces

所以,我有2个表,table1table2。对于他们两个,我有2个按钮来添加行和删除行。 如果table1中没有任何行,我只能在table2中添加或删除行,并使用#{myBean.table2HasRows}对此进行测试。

所以我进入页面。我在table1中有5行,在table2中有2行。我可以正常添加或删除table2中的行。然后我从table2删除了2行,以便删除table1中的行。 当我能够在table1中添加或删除行时,我可以正常添加,我也可以删除刚刚添加的行。但是当我删除在我进入页面时加载的table1 的任何行(在bean中我从#{myBean.table1RowRepresentationList}列表中删除了一个对象),该行删除确定,但然后页面中的所有内容都停止工作。我无法添加或删除任何其他行,并且我不能使用页面中的任何其他按钮,将不再调用该bean。 控制台中没有显示错误...

可能会发生什么?

谢谢!

<h:form>
    <table width="1150x">

        <tr>
            <td>
                <h:outputLabel styleClass="labelPublicacao" value="Table 1 " /> 
                <h:outputLabel value="Table 1 description" />
            </td>
            <td colspan="2">

                <h:panelGrid id="table1Panel" columns="2"   styleClass="panelGridTop">

                    <p:dataTable 
                        id="table1" 
                        var="table1Var"
                        value="#{myBean.table1RowRepresentationList}"
                        editable="true" editMode="cell" style="align:center;" styleClass="geralBorderless">

                        <p:column headerText="" style="width:20px; " >
                            <p:commandLink 
                                action="#{myBean.deleteTable1Row}"
                                update="table1,:form:wrongOption" 
                                id="removeButton"
                                disabled="#{myBean.table2HasRows}"
                                >
                                <h:graphicImage value="/resources/icons/delete.gif" />
                                <f:setPropertyActionListener value="#{table1Var}"
                                    target="#{myBean.table1RowRepresentation}" />
                            </p:commandLink>
                        </p:column>

                        <p:column headerText="Número de questões" style="width:70px;text-align:center">
                            <p:inputMask 
                                value="#{table1Var.numberQuestions}"
                                style="width:25px;" 
                                id="questionsField"
                                mask="9?9"
                                disabled="#{myBean.table2HasRows}" 
                            />

                        </p:column>

                        <p:column headerText="Error points" style="width:65px;text-align:center" rendered="#{myBean.wrongType}">
                            <p:inputText 
                                value="#{table1Var.wrongField}"
                                style="width:25px;" 
                                id="wrongPointsField"
                                onkeyup="formatDecimal(this);"
                                disabled="#{!myBean.wrongType}" 
                                >
                                <f:convertNumber locale="pt_BR"/>
                                </p:inputText>
                        </p:column>

                    </p:dataTable>

                    <table>
                        <tr>
                            <td>

                                <p:commandButton value="ADD ROW" 
                                    update="table1,wrongOption" 
                                    id="addRowTable1Button"
                                    actionListener="#{myBean.addRowForTabl1}"                                
                                    disabled="#{myBean.table2HasRows}" 
                                />
                            </td>
                        </tr>
                    </table>


                </h:panelGrid>
            </td>
        </tr>


        <tr>
            <td><h:outputLabel styleClass="labelPublicacao"
                    value="Table 2 " /> <h:outputLabel
                    value="Description of table 2" />
            </td>
            <td colspan="2">
                <h:panelGrid id="table2Panel" columns="2" width="670" styleClass="panelGridTop">

                    <p:dataTable 
                        id="table2" 
                        var="table2Var"
                        value="#{myBean.table2RowRepresentationList}"
                        editable="true" 
                        editMode="cell" 
                        style="align:center;" 
                        styleClass="geralBorderless">

                        <p:column headerText="" style="width:20px;">
                            <p:commandLink 
                                action="#{myBean.deleteTable2Row}" 
                                update="table2, :form:table1Panel" 
                                id="remove3Button">
                                <h:graphicImage value="/resources/icons/delete.gif" />
                                <f:setPropertyActionListener
                                    value="#{table2Var}"
                                    target="#{myBean.table2RowRepresentation}" />
                            </p:commandLink>                                    
                        </p:column>

                        <p:column headerText="Name" >
                            <p:inputText
                                value="#{table2Var.concursoBook.name}"
                                style="width:140px;" 
                                id="nameField" 
                            />
                        </p:column>

                        <p:column headerText="Modal buttons" style="width:290px;text-align: center;">
                            <p:commandButton value="Modal 1" 
                                id="modal2Button" 
                                oncomplete="modal2.show();" 
                                styleClass="internalButton">
                            </p:commandButton>
                            <p:commandButton value="Modal 2" 
                                id="modal1Button" 
                                oncomplete="modal2.show();" 
                                styleClass="internalButton">
                            </p:commandButton>
                        </p:column>
                    </p:dataTable>

                    <p:commandButton value="ADD ROW" 
                        update="table2, table1, :form:table1Panel, addRowTable1Button"
                        id="addRowTable2Button"
                        action="#{myBean.addRowForTable2}"
                    />
                </h:panelGrid>
            </td>
        </tr>

    </table>

</h:form>

0 个答案:

没有答案