Gambiarra: CFGRID + multiplos selects no formato html

(for english see here)

Uma das novidades do CF8 é o format HTML para a tag CFGRID. Assim como outros recursos de AJAX do CF8, o HTML CFGRID utiliza um framework “terceirizado” (por assim dizer) para montar estruturas bem interessantes. Mas como nem tudo são rosas, a implementação em CFML destes recursos é quase sempre muito básica, não permitindo muita customização nem a utilização de todos os recursos e características destes componentes/frameworks (no caso do CFGRID em html, o CF8 faz uso da poderosa biblioteca/framework Ext JS).

Eu precisava montar um CFGRID com paginação (o Ext JS é realmente fantástico), porém que permitisse a seleção de múltiplas linhas/records e enviar o valor da chave para uma página de ação qualquer. Nativamente isso não é possível com a tag CFGRID. Fuçando um pouco no código gerado (com o Firebug) pelo CF, e buscando paralelos na documentação da API do Ext JS eu consegui chegar a uma gambiarra que permite fazer exatamente o que estava precisando: montar um grid que permite selecionar múltiplas linhas e submeter os valores-chave para uma página de ação qualquer. A idéia é bastante simples: mostrar a listagem de dados dentro de um grid (que tem paginação elegante e rápida) e poder selecionar os valores para fazer qualquer coisa depois (update/delete/whatever).

Você pode ver a gambiarra aqui e baixar o fonte também (para rodar na sua máquina basta ter a datasource “cfdocexamples” instalada). Certamente há margem para melhorar (e muito) esta minha gambiarra, incluindo a saída totalmente “POG” de esperar os dados serem carregados no grid para habilitar a seleção múltipla (tentei fazer isso quando o CF invoca/cria o grid, mas não consegui/descobri como). Mas isso eu deixo para quem tiver saco (e conhecimento). Por enquanto estou satisfeito com o resultado. 😉