Dijit.form.FilteringSelect com mais de uma coluna

1 resposta
jomello_br

Olá amigos,
Alguem sabe me dizer se tem como eu criar um dijit.form.FilteringSelect com mais de uma coluna ou que eu mostre algo mas ele procura em outra string?
Vou Explicar… eu preciso mostrar as Empresas e tenho a Empresa Matriz e a Filial, Preciso de alguma forma mostrar quem é quem ok.
Eu já vi em outros autocomplete que voce pode colocar mais de uma coluna e em outros voce mostra o nome fantasia mas procura na razão social por exemplo.

Desde já agradeço

Abraços

Jomello

OBS: Só vale no dijit.form.FilteringSelect ok :smiley:

1 Resposta

jomello_br

Olá Amigos,
Resolvido o problema e gostaria de compartilhar com voces ok :smiley:
Nesse Exemplo eu mostro o nome da Cidade + Estado (São Paulo - SP), mas seleciono somente o nome São Paulo

JSP

<input class=“short” style=“width:300px” name=“cbNatural” id=“cbNatural”
dojotype=“dijit.form.FilteringSelect”
pagesize=“10”
autocomplete=“false”
store=“storeCidade”
labelAttr=“label”
searchattr=“name”
[color=red] O SEGREDO ESTA AQUI - VC MOSTRA A LABEL MAS SELECIONA O NAME [/color][b]
invalidMessage=“Selecione uma Cidade Válida” />

SERVLET

@RemoteMethod

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {processRequest(request, response);

session = request.getSession(true);

codUsr = session.getAttribute(codUsr).toString();

nEmpresa = session.getAttribute(nIdEmpresa).toString();
if (codUsr == null) {                           // Não foi efetuado login
        response.sendRedirect("../index.jsp");
        System.exit(0);
    } else {
        ArrayList lDados = new ArrayList();
        String cPalavraName;
        String cPalavraLabel;
        String cCodigo;
        String crdpesq = request.getParameter("rdpesq");
        String cdscpesq = request.getParameter("name");
        String cOffset = request.getParameter("start");
        String cLimit = request.getParameter("count");
        if (cOffset == null) {
            cOffset = "0";
        }
        if (cLimit == null) {
            cLimit = "10";
        }
        if (cdscpesq == null) {
            cdscpesq = "";
        } else if (cdscpesq.contains("*")) {
            cdscpesq = cdscpesq.replace("*", "");
        }
        PrintWriter out = response.getWriter();
        if (crdpesq.equals("10")) {
            response.setContentType("text/json; charset=windows-1252");
            out.println("{\"numRows\":10,\"items\":[");
            try {
                rs = cepDAO.load(cdscpesq, cLimit, cOffset);
                while (rs.next()) {
                    cCodigo = rs.getString("cod_cidade");
                    cPalavraName = rs.getString("dsc_cidade");
                    cPalavraLabel = rs.getString("dsc_cidade") + " - " + rs.getString("cod_uf");
                    lDados.add("{\"id\":" + cCodigo + ",\"name\":\"" + cPalavraName + "\",\"label\":\"" + cPalavraLabel + "\",\"abbreviation\":\"" + cCodigo + "\"},");
                }
                funcoes.ImprimeDadosJSON(lDados, out);
            } catch (SQLException e) {
                nErro = -1;
            } finally {
                fechar();
            }
        }
        if (crdpesq.equals("10")) {
            out.println("\"identity\":\"id\"}");
        }
        out.close();
    }
}

FUNÇÃO ImprimeDadosJSON

public void ImprimeDadosJSON(ArrayList lDados, PrintWriter out) {

int nCount = lDados.size();

String cDados = lDados.get(nCount - 1).toString();

StringBuffer sb = new StringBuffer(cDados);

sb.ensureCapacity(sb.length() + 2);

sb.replace(sb.length() - 1, sb.length() + 2, ],);

cDados = sb.toString();

lDados.set(nCount - 1, cDados);

lDados.set(nCount - 1, cDados);

for (int i = 0; i < nCount; i++) {

out.println(lDados.get(i));

}

}

Espero ter ajudado

Abraços

Jomello

Criado 18 de setembro de 2008
Ultima resposta 19 de set. de 2008
Respostas 1
Participantes 1