Preciso de atualizar uma TbGridView que esta dentro de uma div.
Alguem tem algum material, tutorial ou artigo?
Page 1 of 1
Atualizando Uma Div
#2
Posted 04 December 2012 - 06:37 AM
Olá, você precisa atualizá-la após o quê ?
Um click de um botão ajax ?
Se for, segue um exemplo:
No botão, especifique uma função no success das opções Ajax:
Sua GridView ficará dentro de uma DIV identificada com um ID, que está dentro de uma página secundária... para receber um render específico para ela.
No Javascript, coloque o $('#div_itens').html(data); ... ele faz a autalização do Html que você receberá do Controller.
No Controller, deverá haver um renderPartial para atualizar apenas a página que está a GridView.
Não sei se te ajudei exatamente... mas essa é uma variação que usei para o meu caso, quando estava estudando a mesma necessidade. Me lembro de haver outras formas, algumas até mais simples. Mas não tenho aqui na minha documentação. Talvez alguém mais possa ajudar.
Se não te ajudou, explica melhor a situação que você precisa.
Abs,
Um click de um botão ajax ?
Se for, segue um exemplo:
No botão, especifique uma função no success das opções Ajax:
$this->widget('bootstrap.widgets.TbButton', array(
'icon' => 'icon-plus',
'size' =>'medium',
'type' => 'warning',
'buttonType' => 'ajaxButton',
'url' => $this->createUrl('addItem'),
'htmlOptions'=>array('id'=>'btn_addproduto'),
'ajaxOptions'=>array('type'=>'POST',
'success'=>'allFine',
'url' => 'js:$(this).attr("href")',
),
));
Sua GridView ficará dentro de uma DIV identificada com um ID, que está dentro de uma página secundária... para receber um render específico para ela.
<div id="div_itens">
<?php
$this->widget('bootstrap.widgets.TbGridView',array(
'id'=>'itens-grid',
'template'=>"{items}",
'dataProvider'=>$dp_itens,
'type'=>'striped bordered condensed',
'columns'=>$gridColumns,
));
?>
</div>
No Javascript, coloque o $('#div_itens').html(data); ... ele faz a autalização do Html que você receberá do Controller.
/*********************************************************************
* Ajusta campos da tabela de Itens
*********************************************************************/
function allFine(data) {
// display data returned from action
$('#div_itens').html(data);
// Calcula totais da página principal
f_ajusta_totais_venda();
f_ajusta_totais_parcelas();
// Limpando os campos de pesquisa
$('input#add_id').val('');
$('input#searchproduto').val('');
$('input#add_valor').val('');
$('input#add_qtde').val('');
$('input#add_desc').val('');
$('input#add_total').val('');
$('input#searchproduto').focus();
}
No Controller, deverá haver um renderPartial para atualizar apenas a página que está a GridView.
// Devolvendo os valores para a página
$this->renderPartial('_griditens',array(
'dp_itens'=>$dp_itens,
'model_itens'=>$model_itens,
'readonly'=>$readonly,
), false, false);
Não sei se te ajudei exatamente... mas essa é uma variação que usei para o meu caso, quando estava estudando a mesma necessidade. Me lembro de haver outras formas, algumas até mais simples. Mas não tenho aqui na minha documentação. Talvez alguém mais possa ajudar.
Se não te ajudou, explica melhor a situação que você precisa.
Abs,
#3
Posted 04 December 2012 - 11:47 AM
Tirando o botão que fará o reload da div que esta dentro de uma janela modal, o restante do código é idêntico ao seu. mas mesmo assim o reload não acontece. Coloquei dentro do javascript allFine um alert('teste'); so para ver se o código acessava o script. E o alert foi executado e mostrou a mensagem
#4
Posted 07 December 2012 - 10:34 AM
Jjunior, on 04 December 2012 - 11:47 AM, said:
Tirando o botão que fará o reload da div que esta dentro de uma janela modal, o restante do código é idêntico ao seu. mas mesmo assim o reload não acontece. Coloquei dentro do javascript allFine um alert('teste'); so para ver se o código acessava o script. E o alert foi executado e mostrou a mensagem
Olá ... mas o que é essa janela modal ?
É tipo uma confirmação de excluão ou um prompt para informar alguma coisa ?
E aí ... a div a ser atualizada está na janela anterior ?
#5
Posted 12 December 2012 - 06:49 AM
Gustavo Gonçalves, on 07 December 2012 - 10:34 AM, said:
Olá ... mas o que é essa janela modal ?
É tipo uma confirmação de excluão ou um prompt para informar alguma coisa ?
E aí ... a div a ser atualizada está na janela anterior ?
É tipo uma confirmação de excluão ou um prompt para informar alguma coisa ?
E aí ... a div a ser atualizada está na janela anterior ?
Desculpa a demora, estava fazendo outros serviços.
Funciona assim: Na janela principal tenho um botão Adicionar. Clicando nele abre a a modal com os campos a serem preenchidos. Quando clico em salvar, na janela modal, os campos são adicionados no BD a janela modal fecha e a div(gridview) é atualizada com os dados que acabei de gravar.
So não esta funcionando a atualização.
Somente como informação, coloquei um alert('tetse'); dentro da função js, AllFine(), após a linha que deveria fazer a atualização da Div, somente para saber se esta estava sendo executada. E o alert(); esta sendo executado.
#6
Posted 12 December 2012 - 03:58 PM
Se estiver usando um ActiveForm dentro do modal pode abandonar!
Tentei fazer isso ontem, procurei vários links e forum em ingles discutindo o por que do modal do bootstrap mata alguns javascript, e vi que no core do JS do bootstrap faz isso.
Que por final resolvi usar o modal do jquery UI. Se você estiver validando o form para adicionar os dados mostra ae como está sendo feito.
Solução:
http://queirozf.com/...strap-extension
Tentei fazer isso ontem, procurei vários links e forum em ingles discutindo o por que do modal do bootstrap mata alguns javascript, e vi que no core do JS do bootstrap faz isso.
Que por final resolvi usar o modal do jquery UI. Se você estiver validando o form para adicionar os dados mostra ae como está sendo feito.
Solução:
http://queirozf.com/...strap-extension
Newerton Vargas de Araújo
Share this topic:
Page 1 of 1

Help













