Yii Framework Forum: Atualizando Uma Div - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Atualizando Uma Div Rate Topic: -----

#1 User is offline   Jjunior 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 07-November 12

Posted 03 December 2012 - 08:46 PM

Preciso de atualizar uma TbGridView que esta dentro de uma div.

Alguem tem algum material, tutorial ou artigo?
0

#2 User is offline   Gustavo Gonçalves 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 40
  • Joined: 02-October 12
  • Location:Belo Horizonte, MG - Brasil

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:
$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,
0

#3 User is offline   Jjunior 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 07-November 12

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
0

#4 User is offline   Gustavo Gonçalves 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 40
  • Joined: 02-October 12
  • Location:Belo Horizonte, MG - Brasil

Posted 07 December 2012 - 10:34 AM

View PostJjunior, 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 ?
0

#5 User is offline   Jjunior 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 07-November 12

Posted 12 December 2012 - 06:49 AM

View PostGustavo 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 ?



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.
0

#6 User is offline   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 801
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

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
Newerton Vargas de Araújo
0

#7 User is offline   Allan Freitas 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 38
  • Joined: 08-November 12
  • Location:Guarapari-ES - Brazil

Posted 14 December 2012 - 05:43 AM

Vlw Newerton,

A dica funcionou perfeitamente. :D
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users