Yii Framework Forum: [Risolto] Cdetail + Pagination - Yii Framework Forum

Jump to content

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

[Risolto] Cdetail + Pagination i bottoni funzionano solo alla pagina 1 Rate Topic: -----

#1 User is offline   salsero 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 80
  • Joined: 05-September 12
  • Location:Italia

Posted 19 November 2012 - 12:54 PM

Salve gente!! il mio problema è il seguente:
in index.php un CListView
$this->widget('zii.widgets.CListView', array(
	'dataProvider'=>$dataProvider,
	'itemView'=>'_view',
)); 

in _view un link ed un bottone:

echo CHtml::link(CHtml::encode($data->id), array('mycontroller/view', 'id'=>$data->id)); 
echo CHtml::button('bottonText', array('submit' => array('mycontroller/view', 'id'=>$data->id))); 

detto questo in pagina 1 funzionano entrambi.
se passo alla pagina 2 del listview il link continua a funzionare ma il bottone no.. in particolare continua a riferirsi al $data->id della pagina 1

sto uscendo pazzo!!! inutile spiegarvi le ragioni per cui mi serva il bottone al posto del link :)

Buona serata!!!
0

#2 User is offline   salsero 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 80
  • Joined: 05-September 12
  • Location:Italia

Posted 19 November 2012 - 01:30 PM

soluzione :D:D:D

$this->widget('zii.widgets.CListView', array(
        'dataProvider'=>$dataProvider,
        'itemView'=>'_view',
        "id"=>"#comments";
            ));


Grazie comunque e spero possa servire a qualcuno ;)
se però qualcuno si sente di aggiungere una spiegazione tecnica gli sarei grato perché alla fine non so quale sia stato il problema alla base... grazie!
0

#3 User is offline   realtebo 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 620
  • Joined: 03-October 12
  • Location:Ferrara

Posted 20 November 2012 - 03:14 AM

la spiegazione, è che in mancanza di id espliciti, yii li genera automaticamente.

ci sono casi di renderPartial annidati e altri simili in cui questo sistema fa si che esternamente ad un 'pezzo' della pagina di sia uno stesso id presente in un blocco più 'interno'.

E' buona regola inserire sempre gli id in pulsanti e widget
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#4 User is offline   salsero 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 80
  • Joined: 05-September 12
  • Location:Italia

Posted 20 November 2012 - 03:26 AM

View Postrealtebo, on 20 November 2012 - 03:14 AM, said:

E' buona regola inserire sempre gli id in pulsanti e widget

ok hai pienamente ragione e quello che dici è giusto nel senso che quella proprietà setta un id per il ClistView... la cosa che ancora non mi è chiara è come questo vada poi ad influire nel buon/cattivo funzionamento dei bottoni... voglio dire.. non sto settando un id al bottone ma al ClistView..
una cosa curiosa che ho notato è che dopo la modifica, andando alla pagina 2, all'url viene aggiunto il suffisso _page=2 mentre nella prima versione (cioè senza id al ClistView) l'url finisce in index
alquanto curioso... <_< <_< <_< visto che si tratta di una view generata automaticamente da YII sarebbe meglio che l'id lo inserissero già loro ;)
0

#5 User is offline   realtebo 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 620
  • Joined: 03-October 12
  • Location:Ferrara

Posted 20 November 2012 - 04:15 AM

mi è difficile spiegarti il perchè, visto che non mi è del tutto chiaro al 100% il sistema di generazione degli id interno ad Yii, tenendo conto che ho seguito il codice di Yii passo passo per debuggare una situazione simile alla tua.

In generale, sembra che annidamenti + javascript + renderPartial + id portino in casi più o meno estremi a problemi nella gestione degli id.

Sto pensando di ricavarmi una mezza giornata per creare un caso riproducibile da zero ed aprire una segnalazione di bug, ma forse è solo che ad entrambi sfugge qualche logica che ci sta dietro. E sono daccordo con te che questo comportamente è come minimo anomalo.
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
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