Editando tabela na própria linha da tabela com richfaces

0 respostas
A

Ola pessoal,

estou com uma duvida de como pegar o linha já editada na tabela…sei que para buscar a linha objeto usa-se o datamodel.getRowdata();
mas quando edito a tabela e adiciono algo nela, quando vou recuperar no bean ele volta com o mesmo valor que havia antes e nao como foi editado segue abaixo a parte da table:

<rich:panel>
                            <f:facet name="header" id="headertablecrud">
                                <h:panelGrid columns="3">
                                    <a4j:commandLink action="#{controller.actAddRow}"
                                                     ajaxSingle="false"
                                                     immediate="true"
                                                     styleClass="addnew"
                                                     reRender="resultTable"
                                                     value="#{rsc.add} #{p}"
                                                     type="submit"/>
                                    <a4j:commandLink action="actSaveUpdate 
                                                     styleClass="saveadd"
                                                     ajaxSingle="false"
                                                     immediate="true"
                                                     value="#{rsc.saveUpdate}"
                                                     type="submit"
                                                     " />
                                </h:panelGrid>
                            </f:facet>
                            <hr/>
             <rich:dataTable id="resultTable"
                        columnClasses="plainColumn, editColumn"
                       rowClasses="lineB, lineA"
                       headerClass="plainTableHeader"
                       reRender="ds"
                       rows="10"
                       value="#{controller.resultDataModel}"
                       var="row"
                       style="width: 100%;">

                       <rich:column>
                             <f:facet name="header" >
                                   <h:outputText value="Descrição" />
                            </f:facet>
                                 <h:panelGroup layout="block"
                                                  id="panelField" >
                                        <h:outputText converter="plainObjectConverter"
                                                      rendered="#{row.readOnly}"
                                                      value="#{row.persistent}"/>
                                        <h:inputText  rendered="#{row.updating or row.creating}"
                                                      value="#{row.persistent[editField]}"
                                                      style="width: 100%"
                                                      size="60">
                                       </h:inputText>
                                        <rich:messages ajaxRendered="true"
                                                       globalOnly="true"
                                                       styleClass="error"/>
                                    </h:panelGroup>
                                </rich:column>
                                <rich:column>
                                    <a4j:commandLink action="#{controller.actSelectPersistent}"
                                                     ajaxSingle="true"
                                                     immediate="true"
                                                     rendered="#{row.readOnly}"
                                                     reRender="panelField"
                                                     styleClass="edit"
                                                     title="#{rsc.clickToEdit}"
                                                     value=""
                                                       type="submit"/>
                                    <a4j:commandLink action="#{controller.actRemoveRow}"
                                                     ajaxSingle="true"
                                                     immediate="true"
                                                     rendered="#{row.updating or row.creating}"
                                                     reRender="panelField"
                                                     styleClass="cancel"
                                                     title="#{rsc.clickToCancel}"
                                                     value= ""
                                                     type="submit"/>
                                </rich:column>

                            </rich:dataTable>
</rich:panel>

Quando clico no <a4j:commandLink action="#{controller.actSelectPersistent}" - ele abre o input na mesma linha jah adiciona o valor que estava na linha

Quando clico em <a4j:commandLink action="actSaveUpdate(linha no começo do post) coloquei um system somente para verificar o que ele estava pegando e ele nao pega a edição da linha, pega somente o valor orginal e nao o editado

segue meu bean:

public void actRemoveRow() {
        persistentRowWrapper = (PersistentRowWrapper<T>) resultDataModel.getRowData();
        persistentRowWrapper.setReadOnly();
        persistentRowWrapperList.remove(persistentRowWrapper);
        resultDataModel = new ListDataModel(persistentRowWrapperList);

    }

    public void actSelectPersistent() {
        persistentRowWrapper = (PersistentRowWrapper<T>) resultDataModel.getRowData();
        persistentRowWrapper.setUpdating();
    }


public void actSaveUpdate() {
        persistentRowWrapper  = (PersistentRowWrapper<T>) resultDataModel.getRowData();
        System.out.println(persistentRowWrapper .getPersistent);
}

Como q eu consigo pegar a linha já editada? eu não sei se a hora do submit ele consegue atualizar a tabela, ou o ele busca antes do submit os dados…alguem poderia me ajudar

Grato a todos

Criado 10 de agosto de 2010
Respostas 0
Participantes 1