Problema Modal RichDataTable

7 respostas
L

Pessoal uma duvida sobre atualização da Lista do rich:dataTable
tenho uma pagina que com um link

<a:commandLink id=“link” immediate=“true” actionListener="#{SolicitacaoManobraMB.carregaListUser}" >
<h:graphicImage value="/img/lupa.png"
style=“text-decoration: none; font-color: #4f4f4f; border: 0px;” ></h:graphicImage>
<rich:componentControl for=“panel” attachTo=“link”
operation=“show” event=“onclick” />
</a:commandLink>

no modal

<f:subview xmlns=“<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>”

xmlns:ui=“<a href="http://java.sun.com/jsf/facelets">http://java.sun.com/jsf/facelets</a>”

xmlns:h=“<a href="http://java.sun.com/jsf/html">http://java.sun.com/jsf/html</a>”

xmlns:f=“<a href="http://java.sun.com/jsf/core">http://java.sun.com/jsf/core</a>”

xmlns:a4j=“<a href="http://richfaces.org/a4j">http://richfaces.org/a4j</a>”

xmlns:rich=“<a href="http://richfaces.org/rich">http://richfaces.org/rich</a>”>

<rich:modalPanel id=“panel” width=“900” height=“350”>

<f:facet name=“header”>

<h:panelGroup>

<h:outputText value=“Busca…”></h:outputText>

</h:panelGroup>

</f:facet>

<f:facet name=“controls”>

<h:panelGroup>

<h:graphicImage value="/img/close.gif" styleClass=“hidelink” id=“hidelink”/>

<rich:componentControl for=“panel” attachTo=“hidelink” operation=“hide” event=“onclick”/>

</h:panelGroup>

</f:facet>

<ui:include src="/pages/layoutGeral/buscaUsuario.xhtml" />
</rich:modalPanel>

</f:subview>


buscaUsuario.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<rich:panel switchType="client" id="tooglePanelForm"
			width="1024 px">

			<h:panelGrid columns="3" width="480">

				<h:outputLabel value="#{message['usuario']}"
					for="usuario" />
				<h:inputText id="usuario" maxlength="30"
					value="#{SolicitacaoManobraMB.solicitacao.idSolicitacaoManobra}" />
				<a:commandButton value="#{message['botao.filtrar']}"
					action="#{SolicitacaoManobraMB.filtrar}" reRender="formResultTable" />
			</h:panelGrid>

		</rich:panel>

	</rich:simpleTogglePanel>

</a:form>

<rich:simpleTogglePanel switchType="client"
	id="consultaSolicitacao4">
	<rich:panel switchType="client" id="resultTable" width="900">
		<h:form id="formResultTable">

			<rich:dataTable value="#{SolicitacaoManobraMB.listaUsuario}"
				var="item" id="servicoMBList" cellpadding="2" cellspacing="0" rows="10"
				reRender="servicoMBListScroller" align="center" width="800">

				<f:facet name="header">
					<rich:columnGroup>
						<rich:column styleClass="center"
							sortBy="#{item.idSolicitacaoManobra}" style="width:70px;">
							<h:outputLabel value="#{message['identificador.externo']}" />
						</rich:column>

						<rich:column styleClass="center"
							sortBy="#{item.situacao.descricao}" style="width: 130px;">
							<h:outputLabel value="#{message['nome']}" />
						</rich:column>
						<rich:column  sortBy="#{item}"
							style="width: 110px;">
							<h:outputLabel value="#{message['email']}" />
						</rich:column>
						
					</rich:columnGroup>
				</f:facet>
				<rich:column styleClass="center" sortBy="#{item}"
					width="70px;" sortIconAscending="" sortIconDescending="">
					<f:facet name="header">
						<h:outputLabel value="" />
					</f:facet>
					<a:commandLink value="#{item}"
						action="editar"
						reRender="formCancelar, formPrincipal, formPesquisa, formPesquisaSolicitacao, formList">
						<rich:toolTip>
							<span>Visualizar Solicitação:
								#{item}</span>
						</rich:toolTip>
					</a:commandLink>
				</rich:column>
				<rich:column styleClass="solicitacao-#{item} center"
					sortBy="#{item}" sortIconAscending=""
					sortIconDescending="">
					<f:facet name="header">
						<h:outputLabel value="" />
					</f:facet>
					<h:outputText value="#{item}" />
				</rich:column>
				<rich:column styleClass="data" sortBy="#{item}"
					sortIconAscending="" sortIconDescending="">
					<f:facet name="header">
						<h:outputText value="" />
					</f:facet>
					<h:outputText value="#{item}">							
					</h:outputText>
				</rich:column>
				

			</rich:dataTable>

		</h:form>
	</rich:panel>
</rich:simpleTogglePanel>

minha list listaUsuario é um ListDataTable quando ele abre o modal…elta teria que aparecer preenchida…se você for no Debug… a lista me aparece por exemplo 2 elementos…no entanto na pagina a richTable vem vazio, se eu mandar ordenar o richTable eles aparecem :frowning: …foda…como se eu precisarce de uma especie de refresh na pagina.

7 Respostas

A

Boa tarde amigo estou começando a usar o richfaces e estou com dúvidas a respeito da utilizaçào do filtro e do sort na tabela vc poderia me dar um exemplo?
nào consigo fazê-los funcionar no meu…

L

Claro, ve se isso te ajuda
http://livedemo.exadel.com/richfaces-demo/index.jsp

A

Obrigado pela dica, mas já estava utilizando aquele site para olhar a documentaçào vu postar meu código para vc dar uma olhada…

<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
        <title>Consultas a Dados Cadastrais dos cadetes</title>
        <link href="css/default.css" rel="stylesheet" type="text/css" />
        <link href="css/estilos.css" rel="stylesheet" type="text/css" />
    </head>
    <f:view>
        <body>
            <div id="fundo">
                <img name="topo" id="topo" src="imagens/afacabecalho.gif" alt="imagem afa"/>
                <h:form id="fa">
                    <h:messages showDetail="true"/>
                    <div id="cabecalho" class="bordapadrao">
                        <h:panelGrid columns="6">
                            <label jsfc="h:outputLabel" for="esquadrao">Esquadrões:</label>
                            <h:selectOneMenu id="esquadrao"  value="#{consulta.turmaSelecionada}" converterMessage="Esquadrões: Não estou conseguindo">
                                <f:selectItems  value="#{consulta.mapaTurma}" />
                            </h:selectOneMenu>
                            <label jsfc="h:outputLabel" for="quadro">Quadro:</label>
                            <h:selectOneMenu id="quadro"  value="#{consulta.quadro}" converterMessage="Situação: Não estou conseguindo">
                                <f:selectItems  value="#{consulta.mapaQuadro}" />
                            </h:selectOneMenu>
                            <h:commandButton value="Buscar"  type="submit" styleClass="ffatd" action="#{consulta.buscar}"/>
                            <h:commandButton value="voltar"  styleClass="ffatd" action="ccaer" immediate="true"/>                            
                        </h:panelGrid>
                        <rich:scrollableDataTable rowKeyVar="rkv" frozenColCount="1" height="500px"
                                                  width="770px" id="carList" columnClasses="col"
                                                  value="#{consulta.consulta}" var="item" sortMode="single"
                                                  >

                            <rich:column id="nguerra" sortExpression="#{item.nguerra}">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="N. Guerra" /></f:facet>
                                <h:outputText value="#{item.nguerra}" />
                            </rich:column>
                            <rich:column id="numeroAfa">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="numero" /></f:facet>
                                <h:outputText value="#{item.numeroAfa}" />
                            </rich:column>
                            <rich:column width="200px" id="ncompleto">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="N. Completo" /></f:facet>
                                <h:outputText value="#{item.ncompleto}" />
                            </rich:column>
                            <rich:column id="quadro">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Quadro" /></f:facet>
                                <h:outputText value="#{item.quadro}" />
                            </rich:column>
                            <rich:column id="cpf">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="CPF" /></f:facet>
                                <h:outputText value="#{item.cpf}" />
                            </rich:column>
                            <rich:column id="trigrama">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Trigrama" /></f:facet>
                                <h:outputText value="#{item.trigrama}" />
                            </rich:column>
                            <rich:column id="merito">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Merito" /></f:facet>
                                <h:outputText value="#{item.nomeMerito}" />
                            </rich:column>
                            <rich:column id="identidade">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Identidade" /></f:facet>
                                <h:outputText value="#{item.identidade}" />
                            </rich:column>
                            <rich:column id="sexo">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Sexo" /></f:facet>
                                <h:outputText value="#{item.nomeSexo}" />
                            </rich:column>
                            <rich:column id="datadesligado">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Data desligado" /></f:facet>
                                <h:outputText value="#{item.datadesligado}" />
                            </rich:column>
                            <rich:column id="databoldesligado">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Data  Bol.desligado" /></f:facet>
                                <h:outputText value="#{item.databoldesligado}" />
                            </rich:column>
                            <rich:column id="boldesligado">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Bol.desligado" /></f:facet>
                                <h:outputText value="#{item.boldesligado}" />
                            </rich:column>
                            <rich:column id="desligado">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="desligado" /></f:facet>
                                <h:outputText value="#{item.tipoDesligado}" />
                            </rich:column>
                            <rich:column id="nacionalidade">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="Nacionalidade" /></f:facet>
                                <h:outputText value="#{item.nacionalidade.nome}" />
                            </rich:column>
                            <rich:column id="turmaAula">
                                <f:facet name="header"><h:outputText styleClass="headerText" value="turmaAula" /></f:facet>
                                <h:outputText value="#{item.turmaAula.nome}" />
                            </rich:column>                            
                        </rich:scrollableDataTable>
                    </div>
                </h:form>
            </div>
        </body>
    </f:view>
</html>

este é o código da view
gostaria de utilizar o sort e o filtro na tabela para facilitar as consultas…

L

Bom cara existe um atributo sortOrder aponta para uma propriedade da classe, más nunca usei ele da uma olhada se você ja usou algumas dessas refêrencias
http://docs.jboss.org/richfaces/3.3.2.GA/en/devguide/html/rich_scrollableDataTable.html
http://docs.jboss.org/richfaces/3.3.1.GA/en/tlddoc/rich/scrollableDataTable.html

andresilvaq

Olá luiz.carlos!!!

Já tive o mesmo problema com a modalpanel, pelo que verifiquei é que a renderização dela ocorre antes da ação do método do managedbean!!! Isso explica pq uma segunda renderização mostra corretamente os dados…

Minha solução foi colocar na modalpanel o atributo showWhenRendered="#{Bean.var}", onde var é um atributo boolean inicialmente false do managedbean, que é modificado para true na primeira vez q faz a ação(método) qualquer é executada(o).

Isso faz com q o método q está sendo executado tenha que ser terminado antes da Modal tentar acessar Bean.var

flw :smiley:

andresilvaq

Olá Novamente!!!

Achei uma solução menos guambiarristica aqui no fórum mesmo:

http://www.guj.com.br/posts/list/107867.java

flw :-o

A

Bom dia pessoal,
Consegui colocar para funcionar a tabela utilizando a Extended DataTable, ela dá suporte para filtros e sort, porém nào consegui que ela fica com o scroll utomático e ainda tek aquela solução de refresh necessária, pois a soluçào apresentada ainda nào se aplicou para mim, pois nào tenho nehum método de acÇào antes do filtro… quer apenqas filtrar e após apresentar os dados…
Aguém já passou por isso?

Criado 4 de junho de 2009
Ultima resposta 15 de dez. de 2009
Respostas 7
Participantes 3