Testo lungo popup su CGridView

Sono alle prese con una CGridView con un buon numero di colonne.

Il problema è che se il contenuto di una colonna è troppo grande, la riga di dati viene spezzettata su più righe a video. Questo di per sè sarebbe anche un bene, però, paginando, alcune pagine hanno righe multilinea, altre no e l’effetto non è un gran che.

La soluzione che ho adottato è quella di prendere solo la prima parte del campo "voluminoso" e che determina lo spezzettamento della riga.

Mi piacerebbe poter visualizzare però il campo intero al passaggio del mouse. Ho provato a settare TITLE in htmlOptions della colonna interessata:





//.....


    'columns'=>array(


//.....


       array (

              'name' => 'Dettaglio',

              'value' => 'SeleDettaglio($data)',

              'htmlOptions' => array('title' => '$data'), 

//              'htmlOptions' => array('title' => $data),             NON VA NEMMENO QUESTO

//              'htmlOptions' => array('title' => $altraVariabile),    QUESTO NEPPURE

             )



ma non funziona, perchè htmlOptions non viene rivalutata dinamicamente con il contenuto di $data.

Il tutto funziona, ovviamente, con una stringa fissa:




   'htmlOptions' => array('title' => 'stringa fissa inutile'), 



Qualche idea ?

Cosa intendi con "non va"? Che cosa succede?

Se ho capito bene, ‘htmlOptions’ è utilizzato in maniera “statica”, come assegnato all’inizializzazione della CGridView.

Quindi:

‘$data’: mi ritorna la descrizione $data per tutte le righe (come per: ‘stringa fissa inutile’)

$data: mi dà errore, la variabile non esiste (ancora)

$altraVariabile: che inizializzavo a ‘’ e poi settavo in SeleDettaglio($data) - funzione che compone il dettaglio secondo alcuni parametri - mi setta ‘’ per tutte le righe…

Vorrei evitare js…

estendi CDataColumn con override di renderDataCell()

Parrebbe la soluzione più elegante.

L’unica perplessità riguardo l’override di pezzi di libreria è che in caso di evoluzioni del framework bisogna poi farsi carico di verificare la compatibilità col proprio codice.

Ma probabilmente è una mia paranoia :D