Renderizar

8 respostas
L

Primeira Dúvida.
O "header" já está vindo renderizado.
Ou seja antes de eu apertar o botão "Consultar" que faz reRender="tabela".
Porque?

Segunda Dúvida.
Quando eu chamo a tabela pela primeira vez a primeira linha aparece tudo com 0
[IMG]http://img268.imageshack.us/img268/7372/sem1linha.th.gif[/IMG]

Faço a mesma consulta novamente e tudo normal.
[IMG]http://img181.imageshack.us/img181/83/com1linha.th.gif[/IMG]

list2 recebe tudo na primeira vez, já verififiquei. Mas no JSF nao está conseguindo pegar na primeira renderização.

public ArrayList<Acompanhamento> getList2() {
		return list2;
	}
<a4j:commandButton value="Consultar" action="#{listagem.filtrar}" reRender="tabela"></a4j:commandButton>
                        
                       <center><rich:dataTable id="tabela" cellpadding="0"
			                 cellspacing="0" width="700" border="0" var="acompanhamento" value="#{listagem.list2}">

			<f:facet name="header">
				<rich:columnGroup>
					<rich:column rowspan="2">
						<h:outputText value="Pólos" />
						<rich:spacer />
					</rich:column>
					<rich:column colspan="5">
						<h:outputText value="20091" />
					</rich:column>
					<rich:column breakBefore="true">
						<h:outputText value="Matriculados" />
					</rich:column>
					<rich:column>
						<h:outputText value="Respondentes" />
					</rich:column>
					<rich:column>
						<h:outputText value="% Respondentes" />
					</rich:column>
					<rich:column>
						<h:outputText value="Faltantes" />
					</rich:column>
					<rich:column>
						<h:outputText value="% Faltantes" />
					</rich:column>
				</rich:columnGroup>
			</f:facet>

			<rich:subTable var="acompanhamento" value="#{acompanhamento}">
				<rich:column>
					<h:outputText value="#{acompanhamento.nomePolo}" />
				</rich:column>
				<rich:column>
					<h:outputText value="#{acompanhamento.matriculados}" />
				</rich:column>
				<rich:column>
					<h:outputText value="#{acompanhamento.respondentes}" />
				</rich:column>
				<rich:column>
					<h:outputText value="#{acompanhamento.porcentagemRespondentes}" />
				</rich:column>
				<rich:column>
					<h:outputText value="#{acompanhamento.faltantes}" />
				</rich:column>
				<rich:column>
					<h:outputText value="#{acompanhamento.porcentagemFaltantes}" />
				</rich:column>
			</rich:subTable>
		</rich:dataTable></center>

8 Respostas

vitenho

ok, agora em portugues por favor?

cara eu tenho muita vontade de te ajudar, mas nao tenho a minima vontade de ADIVINHAR O ERRO Q ESTA ACONTECENDO

explicar melhor mano

L

Ok.

Estou criando uma tabela.
Quando eu entro na aplicação, eu passo dois parâmetros através de select box, com esses dois parâmetros selecionados eu aperto um botao CONSULTAR.
E esse botão consultar, renderiza a tabela.
Minha primeira dúvida é que antes mesmo de eu usar este botao, o cabeçalho da tabela, definido como “header”, já vem renderizado.

  1. Abro a aplicação (cabecalho da tabela, ja renderizado)
  2. seleciono os parametros
  3. Clico no botao consultar
  4. A outra parte da tabela é renderizada

O que eu gostaria é que esse cabeçalho renderizasse junto com a tabela, ou seja quando eu clicar no botão consultar.
Quero que quando eu clico no botão, apareça a tabela toda.

A outra dúvida é
A interface recebe uma lista chamada “list2”. Através dela posso pegar todos os dados para a tabela.
Quando eu chamo a tabela pela primeira vez(botao consultar) a primeira linha da tabela aparece tudo com 0
Mas quando eu chamo novamente(botao consultar) aparece os valores que faltavam da primeira linha (ver imagens primeiro post)

Quando estamos entretidos na aplicação, as vezes não percebemos se fomos claro ou não na dúvida para outra pessoa.
Relaxa cara.

Valeu
[ ]

vitenho

cara vc esta usando jsf ou swing?

L

JSF - richfaces

vitenho

coloca isso no rendered do dattable

<rich:datatable rendered="#{!empty( SeuBean.lista)}

pow desculpa se fui grosso cara, foi mal

flw brow

L

A tabela está sendo exibida na hora correta, ou seja, após o botão consultar.
A parte que está exibindo logo quando a aplicacação inicia é o cabeçalho, segue abaixo:

<f:facet name="header">
				<rich:columnGroup>
					<rich:column rowspan="2">
						<h:outputText value="Pólos" />
						<rich:spacer />
					</rich:column>
					<rich:column colspan="5">
						<h:outputText value="20091" />
					</rich:column>
					<rich:column breakBefore="true">
						<h:outputText value="Matriculados" />
					</rich:column>
					<rich:column>
						<h:outputText value="Respondentes" />
					</rich:column>
					<rich:column>
						<h:outputText value="% Respondentes" />
					</rich:column>
					<rich:column>
						<h:outputText value="Faltantes" />
					</rich:column>
					<rich:column>
						<h:outputText value="% Faltantes" />
					</rich:column>
				</rich:columnGroup>
			</f:facet>

Só o que está dentro da TAG facet que não deveria renderizar de início.

Tentei isso, mas acabou nao renderizando nada.
Vlw vitenho.
[ ]

vitenho
public class DataTableBean {

	private List<Car> cars = new ArrayList<Car>();
	private Car car = new Car();

	public String find() {
		cars.add(new Car("ferrari1", 1));
		cars.add(new Car("punto", 2));
		cars.add(new Car("veyron", 3));
		cars.add(new Car("ibiza", 4));
		cars.add(new Car("leon", 5));
		cars.add(new Car("m5", 6));
		return null;
	}

	public String select() {
		System.out.println(car);
		return null;
	}

	public String clear() {
		cars = new ArrayList<Car>();
		car = new Car();
		return null;
	}
<h:form id="tester">
			Car nome:
			<h:outputText value="#{dt.car.nome}" />
			<br />
			Car id:
			<h:outputText value="#{dt.car.id}" />
			<rich:dataTable id="carsTable" value="#{dt.cars}" var="car"  rendered="#{not empty(dt.cars)}">
				<f:facet name="header">
					<rich:columnGroup>
						<rich:column>
							nome
						</rich:column>
						<rich:column>
							id
						</rich:column>
						<rich:column>
							action
						</rich:column>
					</rich:columnGroup>
				</f:facet>
				<rich:column>
					<h:outputText value="#{car.nome}" />
				</rich:column>
				<rich:column>
					<h:outputText value="#{car.id}" />
				</rich:column>
				<rich:column>
					<h:commandButton action="#{dt.select}" value="selecionar" >
						<f:setPropertyActionListener value="#{car}" target="#{dt.car}" />
					</h:commandButton>
				</rich:column>
			</rich:dataTable>
			<h:commandButton action="#{dt.find}" value="find" />
			<h:commandButton action="#{dt.clear}" value="clear" />
		</h:form>
public class Car {
	String nome;
	Integer id;

	@Override
	public String toString() {
		return nome + "," + id;
	}

	@Override
	public boolean equals(Object o) {
		if (nome == null)
			return false;
		if (o == null)
			return false;
		if (o instanceof Car == false)
			return false;
		Car c = (Car) o;

		return nome.equals(c.getNome());
	}

	@Override
	public int hashCode() {
		return id;
	}

	public Car() {
	}

	public Car(String nome, Integer id) {
		super();
		this.nome = nome;
		this.id = id;
	}
<managed-bean>
		<managed-bean-name>dt</managed-bean-name>
		<managed-bean-class>test.web.DataTableBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
vitenho

tah funfando 100% aki

flw

Criado 31 de julho de 2009
Ultima resposta 7 de ago. de 2009
Respostas 8
Participantes 2