Problemas com PrimeFaces

Bom dia Pessoal.

Seguinte, não sei se é algum problema da versão ou se eu estou fazendo alguma coisa errada, mas a <p:dataTable> do primefaces está estourando os limites que dei para a página.
Por exemplo:

https://www.dropbox.com/s/lz4s57bfrc2ndor/limitesPrime.png

Meu código da dataTable é o seguinte, e antes de atualizar para a versão 3.6 funcionava. Já pesquisei sobre o assunto e não encontrei muita coisa.

                    <p:dataTable var="nfe"
                                 value="#{nFeSaidaIndexMB.nfeXmlDM}"
                                 paginator="true"
                                 id="lista"
                                 widgetVar="lista"
                                 paginatorPosition="bottom"
                                 selection="#{nFeSaidaIndexMB.nfe_saida}"
                                 selectionMode="single"
                                 emptyMessage="Nenhum registro encontrado"
                                 pageLinks="5"
                                 rows="20"
                                 style="margin-top: 4px">

                        <p:ajax process="lista" event="rowSelect" />

                        <p:column style="width: 65px;" >
                            <f:facet name="header">
                                <h:outputText value="Data"/> 
                            </f:facet>
                            <h:outputText value="#{nfe.demi}">
                                <f:convertDateTime pattern="dd/MM/yyyy"/>
                            </h:outputText>
                        </p:column>

                        <p:column style="width: 45px;">
                            <f:facet name="header">
                                <h:outputText value="N° Nfe"/> 
                            </f:facet>
                            <h:outputText value="#{nfe.nnf}"/>
                        </p:column>
               </p:dataTable>

Opa gilvanandre,

Não sei exatamente se foi pela atualização, mas com certeza não é indicado utilizar px nos width, e sim % para ele se auto adaptar pelo tamanho de tela que esta. Da uma olhada nesse link tem exemplo do própio prime, acho que isso resolve seu problema.

http://www.primefaces.org/showcase/ui/datatableCellEditing.jsf

Cara, estou com o mesmo problema que vc!

[quote=AndreBonatti]Opa gilvanandre,

Não sei exatamente se foi pela atualização, mas com certeza não é indicado utilizar px nos width, e sim % para ele se auto adaptar pelo tamanho de tela que esta. Da uma olhada nesse link tem exemplo do própio prime, acho que isso resolve seu problema.

http://www.primefaces.org/showcase/ui/datatableCellEditing.jsf[/quote]

Opa, vou fazer o teste. Por momento eu consegui corrigir o problema usando width e max max-width, ai delimitei ao tamanho máximo que o campo pode ter, pois quando, por exemplo, o nome for maior, estava estourando o width, portanto coloquei o max-width para ele não estourar esse campo. Mas continua aceitando sugestões para tentar resolver o meu problema sem usar gambiarras. :-o

Obrigado

[quote=gilvanandre][quote=AndreBonatti]Opa gilvanandre,

Não sei exatamente se foi pela atualização, mas com certeza não é indicado utilizar px nos width, e sim % para ele se auto adaptar pelo tamanho de tela que esta. Da uma olhada nesse link tem exemplo do própio prime, acho que isso resolve seu problema.

http://www.primefaces.org/showcase/ui/datatableCellEditing.jsf[/quote]

Opa, vou fazer o teste. Por momento eu consegui corrigir o problema usando width e max max-width, ai delimitei ao tamanho máximo que o campo pode ter, pois quando, por exemplo, o nome for maior, estava estourando o width, portanto coloquei o max-width para ele não estourar esse campo. Mas continua aceitando sugestões para tentar resolver o meu problema sem usar gambiarras. :-o

Obrigado[/quote]

Obrigado pela ajuda ai, mas fiz o teste e com percentual também acontece o mesmo problema.
Vlw

Olá, tens como postar o teu xhtml inteiro, dessa página ? Ou pelo menos as camadas que envolvem o teu datatable.

O código dá página que resolvi com o max-width é a seguinte.

<div style="width: 1000px; margin: 0px auto; text-align: left;">
        <h:form id="form">
            <p:dataTable var="pes"
                         value="#{pessoaIndexMB.lista_pessoas}"
                         paginator="true"
                         paginatorPosition="bottom"                 
                         selection="#{pessoaIndexMB.pessoaSel}"
                         emptyMessage="Nenhum registro encontrado"
                         pageLinks="5"
                         id="lista_pessoa"
                         rows="15"
                         rowKey="#{pes.codigo_pessoa}"
                         style="margin-top: 4px">

                <p:column style="width: 40px;" selectionMode="multiple" exportable="false"/>

                <p:column style="width: 260px; max-width: 260px;" sortBy="#{pes.nome_razao}" >
                    <f:facet name="header">Nome / Razão Social</f:facet>
                    <h:outputText value="#{pes.nome_razao}" title="#{pes.nome_razao}" />
                </p:column>

                <p:column style="width: 260px; max-width: 260px;" sortBy="#{pes.nome_fantasia}">
                    <f:facet name="header">Apelido / Nome Fantasia</f:facet>
                    <h:outputText value="#{pes.nome_fantasia}" title="#{pes.nome_fantasia}"/>
                </p:column>

                <p:column style="width: 140px;">
                    <f:facet name="header">CPF/CNPJ</f:facet>
                    <h:outputText value="#{pes.cpf_cnpj}"/>
                </p:column>

                <p:column style="width: 100px;">
                    <f:facet name="header">Telefone</f:facet>
                    <h:outputText value="#{pes.tel_principal}"/>
                </p:column>

                <p:column style="width: 150px; max-width: 150px;">
                    <f:facet name="header">Cidade</f:facet>
                    <h:outputText value="#{pes.endereco_padrao.cidade.nome} - #{pes.endereco_padrao.cidade.estado.sigla}"
                                  title="#{pes.endereco_padrao.cidade.nome} - #{pes.endereco_padrao.cidade.estado.sigla}"/>
                </p:column>

                <p:column style="width: 50px;" exportable="false">
                    <f:facet name="header">Ver</f:facet>
                    <p:button icon="ui-icon-search"
                              outcome="#{pessoaIndexMB.arquivo()}">
                        <f:param name="id" value="#{pes.codigo_pessoa}"/>
                    </p:button>
                </p:column>

                <f:facet name="footer">
                    <h:commandLink value="Exportar PDF" disabled="#{empty pessoaIndexMB.lista_pessoas}">
                        <p:dataExporter type="pdf" 
                                        target="lista_pessoa" 
                                        fileName="Cadastros" 
                                        encoding="iso-8859-1"
                                        preProcessor="#{pessoaIndexMB.geraPDF}"/>
                    </h:commandLink>
                </f:facet>
                <f:facet name="footer">
                    <h:commandLink value="Exportar XLS" disabled="#{empty pessoaIndexMB.lista_pessoas}" style="margin-left: 20px">
                        <p:dataExporter type="xls" 
                                        target="lista_pessoa" 
                                        fileName="Cadastros" 
                                        encoding="iso-8859-1"
                                        preProcessor="#{pessoaIndexMB.exportaEXCEL}"/>
                    </h:commandLink>
                </f:facet>
            </p:dataTable>


            <h:panelGrid columns="2" style="margin: 0px; border-spacing: 0px">

                <p:commandButton value="Novo"
                                 icon="ui-icon-plus"
                                 onstart="showLoading('formNovo:imagemNovo');"
                                 process="@this"
                                 style="margin-top: 4px">
                    <f:setPropertyActionListener value="#{pessoaIndexMB.intModulo}" target="#{menusMB.intModulo}"/>
                </p:commandButton>
                <p:graphicImage id="imagemNovo" value="/imagens/ajaxloading.gif" style="margin-left: 5px; display: none;"/>


                <p:commandButton value="Imprime Envelopes"
                                 action="#{pessoaIndexMB.imprimeEnvelopePequeno()}"
                                 icon="ui-icon-print"
                                 process=":form:lista_pessoa @this" 
                                 update=":pesquisa:msg"
                                 style="margin-top: -32px; margin-left: 849px; position: absolute">
                </p:commandButton>                               

            </h:panelGrid>
        </h:form>
</div>

A está apenas dentro de um form. E o que comanda o tamanho é a

, ou melhor, comandava até eu fazer a atualização do PrimeFaces.

Te compreendi,

Como falei não é o mais aconselhável utilizar px, mas se faz necessário pela necessidade … faz um teste colocando 100% no div e atribuindo um espaço para cada coluna, utiliza regra de 3, pra transformar px em % pra isso. deve dar algum problema pelo teus controles de margin dos commandButton e comandLink, mas faça o teste pra ver se obedece o teu div, pode acontecer de um css de componente estar sobrepondo, daí vem fazendo testes nos componentes, chegando até no style do datatable.

obs.: Só pra esclarecer esse não é o mesmo form que tem naquela imagem do dropbox ?

[quote=AndreBonatti]Te compreendi,

Como falei não é o mais aconselhável utilizar px, mas se faz necessário pela necessidade … faz um teste colocando 100% no div e atribuindo um espaço para cada coluna, utiliza regra de 3, pra transformar px em % pra isso. deve dar algum problema pelo teus controles de margin dos commandButton e comandLink, mas faça o teste pra ver se obedece o teu div, pode acontecer de um css de componente estar sobrepondo, daí vem fazendo testes nos componentes, chegando até no style do datatable.

obs.: Só pra esclarecer esse não é o mesmo form que tem naquela imagem do dropbox ?[/quote]

Não é o mesmo form não… mas o problema que acontece neste é igual ao daquele, como são padrões do sistema, é o mesmo.
Como falei antes, fiz o teste novamente utilizando percentual ao invés de px, e o problema continua. mesmo alterando a div para 100%, e os devidos campos também.

Obrigado.

Blz … Boa sorte, se encontrar uma solução melhor, ou chegar a conclusão que essa é a única solução, posta aí. Conhecimento nunca e demais, vlw.