
grid.on('rowclick', Click); e mostrar valores da linha
#1
Postado 18 February 2008 - 16:33
Sou novo em Extjs e estou com problemas, hoje passei o dia todo tentando solucionar isso rs!
Eu estou acostumado em com jquery, e eu tinha um script que estou alterando para Ext que pegava o html de um click sobre uma linha. exe:
$("table#the-table tbody tr").click( function() {
//Captura o HTML do tr para futura captura dos dados
var longstring = $(this).html(); <-----
só que em Extjs não estou conseguindo pegar isso nem a porrada! ou seja não estou achando um comando que pegue o conteudo do click na linha.
exe de aonde estou parado:
grid.on('rowclick', Click);
function Click(){
//Captura o HTML do tr para futura captura dos dados
//var longstring = $(this).html();
//var longstring = grid.getSelectionModel().getSelected().innerHTML;
var longstring = grid.getSelectionModel().getSelected().innerHTML;
//var num = grid.getSelections().length;
alert(longstring);
};
Muito obrigado!
Atenciosamente!
Deivison Arthur
Programador JR / Fiocruz - RJ
#3
Postado 20 February 2008 - 23:39
o maximo que consegui no forum é pegar uns IDs tipo 1001, 1002 ... aonde eu não configurei os IDs para esse tipo. acredito que o js esteja criando automaticamente esses IDs.
poderia me dar uma ajuda? pois esta dificil! rs
Obrigado!
Atenciosamente
Deivison Arthur
#4
Postado 21 February 2008 - 23:19
No jQuery vc pegava o valor do elemento no DOM certo?
No Ext vc não precisa se "rebaixar¨ tanto

A melhor coisa que vc pode fazer para entender a estrutura e o poder do DataStore é ve-lo no FireFox com o FireBug.
Onde vc cria seu grid (new Ext.grid...) coloque ele em uma variável sem o "var" na frente. Isso fara com que seu Grid fique referenciado em uma variável global. Então abra o Firebug, va na aba DOM e vc verá sua variável lá, abra o + dela e veja a estrutura do Grid e do DataStore dentro dele. La mesmo vc vai acabar encontrando esses IDs 1001 e 1002 e descobrindo como usa-los, ou não, para chegar à informação q vc quer.
#6
Postado 28 February 2008 - 12:07



Para caputurar o valor dos titulos(Header) e o valor de um linha(row) com o clique do mouse no Grid basta fazer:
grid.on("rowclick", onClick);
function onClick(grid, rowIndex, event){
var str ='';
for (var i=0; i < grid.getView().getRow(rowIndex).childNodes.length;i++)
{
view = grid.getView();
var texto = view.getHeaderCellText(i).innerHTML;
texto = texto.substring(0,texto.indexOf('<img'));
valor = view.getCellText(rowIndex,i).innerHTML;
str += texto + ': ' + valor + '\n';
}
alert(str);
}
Valeu pela ajuda de todos!!!!
#7
Postado 01 December 2008 - 13:30
RESOLVIDO: fala ai pessoal
! descobri!!!!
![]()
Para caputurar o valor dos titulos(Header) e o valor de um linha(row) com o clique do mouse no Grid basta fazer:
grid.on("rowclick", onClick);
function onClick(grid, rowIndex, event){
var str ='';
for (var i=0; i < grid.getView().getRow(rowIndex).childNodes.length;i++)
{
view = grid.getView();
var texto = view.getHeaderCellText(i).innerHTML;
texto = texto.substring(0,texto.indexOf('<img'));
valor = view.getCellText(rowIndex,i).innerHTML;
str += texto + ': ' + valor + '\n';
}
alert(str);
}
Valeu pela ajuda de todos!!!!
boa funcionou aqui

#8
Postado 02 December 2008 - 07:53
Pegar o header e os dados da linha? Mole:
A classe columnModel tem um método getColumnHeader.
getColumnHeader( Number col ) : String
Returns the header for the specified column.
Para pegar os dados você pega o Ext.Record (registro de dados) do Ext.data.Store (store de dados) do grid e extrai todos os dados que quiser.
Vi que você percorre cada coluna pra montar uma string JSON com os dados. Isso no Ext está pronto no Ext.Record.
Pegar os dados de uma linha
grid.on("rowclick", onClick); function onClick(grid, rowIndex, event) { var dados = grid.store.getAt( rowIndex ); alert( dados.get('meuDado1') ); alert( dados.get('meuDado2') ); //inserir no banco Ext.Ajax.request({ url:'Action.aspx' params:{ id: dados.get('id') ,titulo:dados.get('titulo') } }); }
0 usuário(s) está(ão) lendo este tópico
0 membros, 0 visitantes, 0 membros anônimos