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