Olá estou com algumas dificuldades com o jquerygrid e o vraptor, ele carrega somente o meu primeiro registro, (eu tenho 9 registro na tabela), segue código, acho que alguma coisa que tenho que fazer no meu controller mas não sei qual, segui mais ou menos o que o Cherubini fez nesse post: http://www.guj.com.br/java/212562-vraptor3--flexigrid--json, com o flexigrid…
Há se alguém souber de uma forma melhor de carregar o jqueryGrid eu agradeço…
Controller
@Get
@Restrito
@Path("/endereco/buscarEndereco2.json")
public void buscaJson2() {
try {
List<Endereco> endereco = repository.listCombo("idend");
List<GridRow> rows = new ArrayList<GridRow>();
List<String> cell = new ArrayList<String>();
GridRow row = new GridRow();
for (int i = 0; i < endereco.size(); i++) {
row.setId(String.valueOf(endereco.get(i).getIdend()));
cell.add(String.valueOf(endereco.get(i).getIdend()));
cell.add(endereco.get(i).getEndereco());
cell.add(endereco.get(i).getBairro());
cell.add(endereco.get(i).getCep());
row.setCell(cell);
}
rows.add(row);
Grid grid = new Grid(1, endereco.size(), rows);
result.use(json()).withoutRoot().from(grid).recursive().serialize();
} catch (Exception ex) {
result.use(json()).from(null).serialize();
}
}
Classe Grid
package br.com.coliseu.controller;
import java.util.List;
public class Grid {
public Integer page;
public Integer total;
public List<GridRow> rows;
public Grid(int i, int size, List<GridRow> rows2) {
this.page = i;
this.total = size;
this.rows = rows2;
// TODO Auto-generated constructor stub
}
}
Classe GridRow
package br.com.coliseu.controller;
import java.util.List;
public class GridRow {
public String id;
public List<String> cell;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public List<String> getCell() {
return cell;
}
public void setCell(List<String> cell) {
this.cell = cell;
}
}
Jquertgrid
var lastsel;
jQuery("#rowed3").jqGrid({
url:'/Coliseu/endereco/buscarEndereco2.json?q=a',
datatype: "json",
colNames:['Inv No','Endereco', 'Cep', 'Bairro'],
colModel:[
{name:'endereco.idend',index:'idend', width:100},
{name:'endereco.endereco',index:'endereco', width:200, editable:true},
{name:'endereco.cep',index:'cep', width:150,editable:true},
{name:'endereco.bairro',index:'bairro', width:200, align:"right",editable:true}
],
rowNum:10,
rowList:[10,20,30],
pager: '#prowed3',
sortname: 'idend',
viewrecords: true,
sortorder: "desc",
onSelectRow: function(id){
if(id && id!==lastsel){
jQuery('#rowed3').jqGrid('restoreRow',lastsel);
jQuery('#rowed3').jqGrid('editRow',id,true);
lastsel=id;
}
},
editurl: "/Coliseu/endereco/adicionaEndereco",
caption: "Using events example"
});
jQuery("#rowed3").jqGrid('navGrid',"#prowed3",{edit:true,add:true,del:true});
Json que ele tras
{"page": 1,"total": 9,"rows": [{"id": "38","cell": ["4","RUA: BREJINHO","PINHEIRINHO","85.603-400","22","RUA: BEM-TE-VI","PADRE EURICO","85.604-280","26","RUA: CANDÓI","ÁGUA BRANCA","85.601-850","27","RUA: BEM-TE-VI","PADRE EURICO","85.604-280","29","RUA: MATO GROSSO","PRESIDENTE KENNEDY","85.605-280","32","RUA: URUBICI","CENTRO","85.601-260","34","RUA: VITORINO","MARRECAS","85.601-500","36","RUA: ANITA GARIBALDI","CENTRO","85.601-280","38","RUA: ORQUÍDEA","NOSSA SENHORA APARECIDA","85.601-210"]}]}