Dados não carrega no Flexigrid

2 respostas
F

Boa Dia a todos,

Não estou conseguindo visualizar os dados da servlet utilizando o flexigrid, alguém pode me ajudar mostrando aonde esta meu erro.
Já fiz de tudo e não deu certo, e como utilizar o JSON para o exemplo abaixo ou XML…

Obrigado,

Servert (Retorna XML):

response.setContentType("text/xml");
                                response.setHeader("Cache-Control", "no-cache");
		PrintWriter out = response.getWriter();
		Document xmldoc = new DocumentImpl();
		Element e,e1;
		Element root = xmldoc.createElement("rows");
		
		e1 = xmldoc.createElementNS(null, "page");
		e1.appendChild(xmldoc.createTextNode("1"));
		root.appendChild(e1);
		
		e1 = xmldoc.createElementNS(null, "total");
		e1.appendChild(xmldoc.createTextNode("2"));
		root.appendChild(e1);

		DaoFactory factory = new DaoFactory();
		List<Emails> list = factory.getEmailsDao().lista();

		for (Emails client : list) {
			e = xmldoc.createElementNS(null, "row");
			e.setAttributeNS(null, "id", String.valueOf(client.getId()));

			e1 = xmldoc.createElementNS(null, "id");
			e1.appendChild(xmldoc.createTextNode(client.getId().toString()));
			e.appendChild(e1);

			e1 = xmldoc.createElementNS(null, "email");
			e1.appendChild(xmldoc.createTextNode(client.getEmail()));
			e.appendChild(e1);
			
			e1 = xmldoc.createElementNS(null, "tipo");
			e1.appendChild(xmldoc.createTextNode(client.getTipo()));
			e.appendChild(e1);

			root.appendChild(e);
		}

		xmldoc.appendChild(root);
		OutputFormat format = new OutputFormat(xmldoc);
		format.setIndenting(true);
		XMLSerializer serializer = new XMLSerializer(out, format);
		try {
			serializer.asDOMSerializer();
			serializer.serialize(xmldoc);
		} catch (IOException e5) {
			e5.printStackTrace();
		}

JSP (Flexigrid):

<body>   
    <h1>EMAILS</h1>   
    <div id="grid">   
    <table id="datagrid" style="display:none"></table>   
    <script type="text/javascript">   
       
    $('#datagrid').flexigrid({   
        url: 'http://127.0.0.1:8080/comercial/xmlGrid',   
        dataType: 'xml',   
        colModel : [   
            {display: 'ID', name : 'id', width : 60, sortable : true, align: 'right'},   
            {display: 'EMail', name : 'email', width : 350, sortable : true, align: 'left'},   
            {display: 'Tipo', name : 'tipo', width : 60, sortable : true, align: 'right'}   
        ],   
 
    sortname: "id",   
    sortorder: "asc",   
    usepager: true,   
    title: 'Emails',   
    useRp: true,   
    rp: 15,   
    showTableToggleBtn: true,   
    width: 700,   
    height: 200   
    });     
               
    </script>   
    </div>   
    
</body>

2 Respostas

F

Esqueci de mencionar.

Já fiz assim também:

e1 = xmldoc.createElementNS(null, "cell");   
    e1.appendChild(xmldoc.createTextNode(client.getId().toString()));   
    e.appendChild(e1);   
  
    e1 = xmldoc.createElementNS(null, "cell");   
    e1.appendChild(xmldoc.createTextNode(client.getEmail()));   
    e.appendChild(e1);   
       
    e1 = xmldoc.createElementNS(null, "cell");   
    e1.appendChild(xmldoc.createTextNode(client.getTipo()));   
    e.appendChild(e1);
eu.x

Recentemente eu converti o exemplo PHP para .NET. Ele está em http://www.myblick.com/external_tools/flexigrid/ .
Um problema que eu tive e que pode ser que esteja acontecendo com você é que ao alterar o content type do response, a compactação de resposta do servidor se perde. Busquei informações e vi que os servidores Apache também sofrem desse mal, mas é possível configurá-lo para que novos tipos de resposta sejam compactadas.

Vou comparar sua versão com a minha, pois ambas devem estar bem próximas. Poste o retorno do XML ou do JSON para facilitar a localização do problema.

Criado 28 de dezembro de 2008
Ultima resposta 7 de jan. de 2009
Respostas 2
Participantes 2