Hallo,
habe ein Problem mit dem Editieren von Einträgen einer Tabelle. Ich kann die Einträge zwar ändern, aber sie werden nicht gespeichert. Wenn ich ein separates Form mache, dann geht es. Was stimmt in meiner Seite nicht?
Ich hänge mal die ganze Seite ein, weil sie ein einziges Form ist. Im ersten tab kann man eine neue company mit address eingeben. Im zweiten tab werden alle companies angezeigt und im dritten Tab die Details zu einer company. Genau da möchte ich Adressen ändern und speichern können (button mit id="saveCompanySelected").
habe ein Problem mit dem Editieren von Einträgen einer Tabelle. Ich kann die Einträge zwar ändern, aber sie werden nicht gespeichert. Wenn ich ein separates Form mache, dann geht es. Was stimmt in meiner Seite nicht?
Ich hänge mal die ganze Seite ein, weil sie ein einziges Form ist. Im ersten tab kann man eine neue company mit address eingeben. Im zweiten tab werden alle companies angezeigt und im dritten Tab die Details zu einer company. Genau da möchte ich Adressen ändern und speichern können (button mit id="saveCompanySelected").
Code:
<?xml version="1.0" encoding="UTF-8"?>
<ui:composition template="/META-INF/templates/template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:define name="content">
<h:form id="formCompanies">
<p:accordionPanel id="accPanel" multiple="true" activeIndex="1,2">
<p:tab title="#{msgs.companyNew}">
<p:panelGrid id="gridCompanyNew" columns="2">
<f:facet name="header">#{msgs.companyData}</f:facet>
<p:outputLabel value="#{msgs.companyName}" for="nameNew"/>
<p:inputText id="nameNew" value="#{companyBean.companyNew.name}"/>
</p:panelGrid>
<p:spacer height="10"/>
<p:panelGrid columns="1">
<f:facet name="header">#{msgs.companyAddresses}</f:facet>
<p:dataTable var="address" value="#{companyBean.addresses}">
<p:column headerText="#{msgs.addressAddressType}">
<p:selectOneMenu value="#{address.addressType}">
<f:selectItems value="#{valueProvider.addressTypes}" var="addressType"
itemValue="#{addressType}" itemLabel="#{msgs['AddressTypeEnum.' +=
addressType]}"/>
</p:selectOneMenu>
</p:column>
<p:column headerText="#{msgs.addressStreet}">
<p:inputText value="#{address.street}"/>
</p:column>
<p:column headerText="#{msgs.addressCity}">
<p:inputText value="#{address.city}"/>
</p:column>
</p:dataTable>
</p:panelGrid>
<p:spacer height="10"/>
<p:commandButton id="save" value="#{msgs.save}" icon="ui-icon-check"
action="#{companyBean.save}" type="submit" ajax="false"/>
</p:tab>
<p:tab title="#{msgs.companyDisplay}">
<p:dataTable var="company" value="#{companyBean.companies}" scrollable="true" scrollHeight="150"
selectionMode="single" selection="#{companyBean.companySelected}"
rowKey="#{company.id}"
paginator="true" rows="10" filteredValue="#{companyBean.companiesFiltered}">
<p:ajax event="rowSelect" update="formCompanies:accPanel:detailsCompanySelected"/>
<p:column headerText="#{msgs.companyName}" sortBy="#{company.name}" sortable="true"
filterBy="#{company.name}" filterable="true" filterMatchMode="contains">
#{company.name}
</p:column>
</p:dataTable>
</p:tab>
<p:tab title="#{msgs.details}">
<p:spacer height="10"/>
<h:panelGroup id="detailsCompanySelected">
<p:panelGrid columns="1">
<f:facet name="header">#{msgs.companyAddresses}</f:facet>
<p:dataTable id="addressesCustomerSelected" var="address"
value="#{companyBean.companySelected.addresses}"
rendered="#{companyBean.companySelectedAndAddressesExist}">
<p:column headerText="#{msgs.addressAddressType}">
<h:outputText value="#{msgs['AddressTypeEnum.' += address.addressType]}" rendered="#{!address.editable}"/>
<p:selectOneMenu value="#{address.addressType}" rendered="#{address.editable}">
<f:selectItems value="#{valueProvider.addressTypes}" var="addressType"
itemValue="#{addressType}" itemLabel="#{msgs['AddressTypeEnum.' +=
addressType]}"/>
</p:selectOneMenu>
</p:column>
<p:column headerText="#{msgs.addressStreet}">#{address.street}</p:column>
<p:column headerText="#{msgs.addressCity}">#{address.city}</p:column>
<p:column headerText="#{msgs.options}">
<p:commandButton id="editCustomerSelected" value="#{msgs.edit}"
icon="ui-icon-wrench"
rendered="#{!address.editable}"
action="#{companyBean.changeToEditModeForCompanySelected(address)}"
ajax="false" immediate="true"/>
</p:column>
</p:dataTable>
</p:panelGrid>
<p:spacer height="20"/>
<p:commandButton id="saveCompanySelected" value="#{msgs.saveChanges}" icon="ui-icon-check"
action="#{companyBean.saveCompanySelected}" ajax="false"
immediate="true"/>
</h:panelGroup>
</p:tab>
</p:accordionPanel>
</h:form>
</ui:define>
</ui:composition>