Autor |
Mensagem |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 21/06/2007 13:59:35
|
Leandro Dupin
Equipe
Membro desde: 21/06/2007 12:46:54
Mensagens: 3
Offline
|
Tenho uma listagem que na verdade é exibida por um datagrid.
Existe uma forma de colocar ordenação pelos campos desse datagrid? Como nas listagens usando "<t:janelaResultados> / <t:tabelaResultados>" onde o nome do campo se torna um link que ao ser clicado ordena pela coluna em questão.
Agradeço a atenção
|
-------------------------------------------------
Leandro Lanna Dupin
Desenvolvedor Java - Universidade FUMEC
www.fumec.br
lld.informatica@gmail.com |
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 22/06/2007 09:36:50
|
rogel.garcia
Xiita
Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline
|
Leandro existe um flag no NEO que indica se deve ou não ser renderizado um link de ordenação para o dataGrid.
Esse flag é um atributo de sessão chamado TEMPLATE_listagem.
Para habilitar a ordenação para o dataGrid automaticamente você deve colocar um atributo com o nome TEMPLATE_listagem no escopo de requisição.
Existem duas formas, no controller:
Code:
request.setAttribute("TEMPLATE_listagem", "true");
ou no JSP:
Code:
<c:set var="TEMPLATE_listagem" value="true" scope="request"/>
Você pode ainda utilizar o atributo order da tag t:property e indicar como deve ser ordenada a coluna.
Em qualquer um dos casos de ordenação acima, será passado o parâmetro orderBy, isso quer dizer que seu Command (bean da action do controller, segundo parametro do método) deve possuir um atributo orderBy. No DAO será necessário utilizar o método order do QueryBuilder para indicar a ordenação.
Quando utilizar essa ordenação, não é feito um submit do formulário, ou seja, suas informações serão perdidas se o Command não for de sessão.
Para colocar um command como um command de sessão, é necessária a seguinte anotacao na sua action:
Code:
@Command(session=true)
public ModelAndView(WebRequestContext request, Bean bean){
...
}
Lembrando que se existir outra action que utilize o mesmo bean, deve ser colocada @Command(session=true) nos outros métodos também.
Fique atento, pois o formulário de sessão altera um pouco o comportamento da tela (se o usuário sair da página e voltar a página mais tarde os dados do formulário ainda terão os valores configurados anteriormente)
Nada impede ainda de colocar o seu próprio código no header do column do dataGrid
Code:
<n:dataGrid ...>
<n:column>
<n:header>
<a href="faça o que desejar aqui"> Nome </a>
</n:header>
<n:body>
<t:property name="nome" />
</n:body>
</n:column>
</n:dataGrid>
Você pode ainda alterar o Template do Property (PropertyTag.jsp) para adicionar ordenações padrão da maneira que desejar.
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 28/06/2007 14:37:08
|
Leandro Dupin
Equipe
Membro desde: 21/06/2007 12:46:54
Mensagens: 3
Offline
|
Obrigado.
|
-------------------------------------------------
Leandro Lanna Dupin
Desenvolvedor Java - Universidade FUMEC
www.fumec.br
lld.informatica@gmail.com |
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 02/10/2007 16:26:08
|
alexcampos
Equipe
![[Avatar]](/forum/images/avatar/72b32a1f754ba1c09b3695e0cb6cde7f.jpg)
Membro desde: 26/09/2007 11:13:14
Mensagens: 7
Offline
|
pessoal.. como é que eu faço pra colocar um link pra outra página num <t:property> de uma listagem?
atten...
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 02/10/2007 18:18:00
|
rogel.garcia
Xiita
Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline
|
Voce pode fazer assim:
Code:
<n:column header="titulo">
<n:link url=""><t:property name="..."/></n:link>
</n:column>
ou vc pode alterar o template do property (PropertyTag.jsp) e adicionar um atributo dinamico aí, o seu jsp poderia ficar assim:
<t:property name="..." link="..."/>
Você terá que alterar o template do property para o atributo link ter alguma funcionalidade
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 26/10/2007 15:55:23
|
priscicruz
CRUD
Membro desde: 27/09/2007 22:02:18
Mensagens: 31
Offline
|
Olá!
Utilizei a listagem e esta funcionando somente com objetos String.
Como faço pra utilizar objetos do tipo date ou integer??
POr exemplo listar por dataNasc ou código?
Meu DAO é assim:
Code:
public class LoteDAO extends GenericDAO<Lote> {
@Override
//updateListagemQuery: Atualiza a query de listagem, recebe um objeto da mesma classe do filtro do CRUD
public void updateListagemQuery(QueryBuilder<Lote> query, FiltroListagem _filtro) {
LoteFiltro filtro = (LoteFiltro) _filtro;
query.whereLike("lote.nome", filtro.getNome());
}
}
Meu filtro:
Code:
public class LoteFiltro extends FiltroListagem {
String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
O Model:
Code:
@Entity
public class Lote implements java.io.Serializable {
private Integer codigo;
private String nome;
private Date dataNasc;
private Origem origem;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
@MaxLength(9)
@DescriptionProperty
@Required
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Temporal
@Required /*É obrigatório o preenchimento deste campo*/
public Date getDataNasc() {
return dataNasc;
}
public void setDataNasc(Date dataNasc) {
this.dataNasc = dataNasc;
}
@Required
@ManyToOne
public Origem getOrigem() {
return origem;
}
public void setOrigem(Origem origem) {
this.origem = origem;
}
}
E o Listagem .jsp
Code:
<%@ taglib prefix="n" uri="neo"%>
<%@ taglib prefix="t" uri="template"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<t:listagem>
<t:janelaFiltro>
<t:tabelaFiltro>
<t:property name="nome"/>
</t:tabelaFiltro>
</t:janelaFiltro>
<t:janelaResultados>
<t:tabelaResultados>
<t:property name="codigo"/>
<t:property name="nome"/>
<t:property name="dataNasc"/>
<t:property name="origem"/>
</t:tabelaResultados>
</t:janelaResultados>
</t:listagem>
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 26/10/2007 21:40:27
|
pedro.goncalves
Equipe
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline
|
Priscila, da maneira que você fez está correto,
Apenas certifique que o Date que você está usando pertençe ao pacote java.sql.Date.
Obrigado.
|
Pedro Gonçalves
http://pedrogoncalves.com.br
 |
|
 |
|