Prime faces- <p:dataTable> e <p:dialog>

3 respostas
Mertz

Oi!!!

Pessoal,

Tenho uma dúvida,

<p:dataTable var="item" value="#{projetoBean.listProject}"  paginator="true" rows="10" 
			          	style="font-size: 9px;text-align: justify ;" > 
					<p:commandButton value="Cost"  update="dialogCost" onclick="dlgCost.show()" title="Cost"  style="font-weight: bold;color: blue">
                                    	      <f:setPropertyActionListener value="#{projct}" target="#{projetoBean.cost}"/>
                                	</p:commandButton>
				 </p:dataTable>
		          <p:dialog header="Cost" widgetVar="dlgCost" modal="true"  showEffect="true" width="800" height="420">  
			          	<p:outputPanel id="dialogCost" >
	                    <p:panel header="Budget">
                        <p:dataTable value="#{projetoBean.cost.listCost}" var="costItem"  rowStyleClass="#{empty costItem.item  or costItem.item mod 2 ne 0 ?  'even-row' : 'odd-row'}" rowIndexVar="rowIx" emptyMessage="No Cost">
				
	                            <p:column headerText="Description" style="font-size: 12px;font-weight: bold" rendered="#{costItem.type != 'D' and costItem.type != 'I' }">
	                                <h:outputText value="#{costItem.desc}" />
	                            </p:column>
	                            <p:column headerText="Value"  style="font-size: 12px;font-weight: bold;text-align: right;" rendered="#{costItem.type != 'D' and costItem.type != 'I' }" >

                                <h:outputText value="#{costItem.value}" style="color: #4477ff" rendered="#{costItem.type == 'B'}" >
                                    <f:convertNumber type="currency" currencySymbol="R$"  locale="pt" />
                                </h:outputText>
                                <h:outputText value="#{costItem.value}" style="color: darkorange" rendered="#{costItem.type == 'S'}" >
                                    <f:convertNumber type="currency" currencySymbol="R$"  locale="pt" />
                                </h:outputText>
                                <h:outputText value="#{costItem.value}" style="color: darkgreen" rendered="#{costItem.type == 'Z' and costItem.value > 0 }" >
                                    <f:convertNumber type="currency" currencySymbol="R$"  locale="pt" />
                                </h:outputText>
                                <h:outputText value="#{costItem.value}" style="color: red" rendered="#{costItem.type == 'Z' and !(costItem.value >0) }" >
                                    <f:convertNumber type="currency" currencySymbol="R$"  locale="pt" />
                                </h:outputText>
                            </p:column>
                        </p:dataTable> 
                    </p:panel>    
		          </p:dialog>
O que acontece é que quando clico no botão não leva a lista para o

com o funciona, mas no meu caso eu tenho uma lista onde cada projeto tem uma lista de detalhes pra exibir no meu dialog.

O que estou fazendo de errado, estou começando agora com primefaces e jsf 2

Até mais,

Marlise.

3 Respostas

marcelocenerine

Marlise,

Vc omitiu alguma parte do seu código? Sua tabela de projetos está sem nenhuma coluna:

<p:dataTable var="item" value="#{projetoBean.listProject}"  paginator="true" rows="10"   
                        style="font-size: 9px;text-align: justify ;" >   
                    <p:commandButton value="Cost"  update="dialogCost" onclick="dlgCost.show()" title="Cost"  style="font-weight: bold;color: blue">  
                                              <f:setPropertyActionListener value="#{projct}" target="#{projetoBean.cost}"/>  
                                    </p:commandButton>  
                 </p:dataTable>

Me parece que seu problema é devido à diferença do nome dado à cada item da lista na tabela de projetos (<p:dataTable var=“item”) e o nome utilizado ao tentar passar o valor ao seu backbean no botão (value="#{projct}").

Mertz

Desculpa ai..

Marcelo,

Omiti sim é muito comprido

<p:dataTable  var="projct" value="#{projetoBean.listProject}" paginator="true"
		            	rows="12" effect="true"   rowsPerPageTemplate="9,12,15" style="font-size: 9px;text-align: left" 
		            	paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" >
		            		
		            			<p:column headerText="#{mgs.projetoCodProj}" sortBy="#{projct.codProd}" filterBy="#{projct.codProd}" >
				                    <h:outputText value="#{projct.cod}"/>
				                    <h:outputText value="#{projct.group}"/>
				                </p:column>
 <p:column headerText="#{mgs.projetoCost}" >
							        <p:commandButton value="Cost"  update="dialogCost" onclick="dlgCost.show()" title="Cost"  style="font-weight: bold;color: blue">
                                    	<f:setPropertyActionListener value="#{projct}" target="#{projetoBean.cost}"/>
                                	</p:commandButton>
				                </p:column>
				              
		            </p:dataTable>
<p:panel header="Budget">

                        <p:dataTable value="#{projetoBean.cost.listCost}" var="costItem"  rowStyleClass="#{empty costItem.item  or costItem.item mod 2 ne 0 ?  'even-row' : 'odd-row'}" rowIndexVar="rowIx" emptyMessage="No Cost">
				
                            <p:column headerText="Description" style="font-size: 12px;font-weight: bold" rendered="#{costItem.type != 'D' and costItem.type != 'I' }">
                                <h:outputText value="#{costItem.desc}" />
                            </p:column>
                            <p:column headerText="Value"  style="font-size: 12px;font-weight: bold;text-align: right;" rendered="#{costItem.type != 'D' and costItem.type != 'I' }" >

                                <h:outputText value="#{costItem.value}" style="color: #4477ff" rendered="#{costItem.type == 'B'}" >
                                    <f:convertNumber type="currency" currencySymbol="R$"  locale="pt" />
                                </h:outputText>
                                <h:outputText value="#{costItem.value}" style="color: darkorange" rendered="#{costItem.type == 'S'}" >
                                    <f:convertNumber type="currency" currencySymbol="R$"  locale="pt" />
                                </h:outputText>
                                <h:outputText value="#{costItem.value}" style="color: darkgreen" rendered="#{costItem.type == 'Z' and costItem.value > 0 }" >
                                    <f:convertNumber type="currency" currencySymbol="R$"  locale="pt" />
                                </h:outputText>
                                <h:outputText value="#{costItem.value}" style="color: red" rendered="#{costItem.type == 'Z' and !(costItem.value >0) }" >
                                    <f:convertNumber type="currency" currencySymbol="R$"  locale="pt" />
                                </h:outputText>
                            </p:column>
                        </p:dataTable>   
                    </p:panel>

Sou nova em JSF 2 com primefaces, no projeto tinha este código só que fazendo com , ai funciona traz a lista ao clik no botão.

Obrigado pela atenção.

marcelocenerine

mas resolveu ou ainda está com erro?

Criado 6 de outubro de 2011
Ultima resposta 7 de out. de 2011
Respostas 3
Participantes 2