132 messaggi dal 22 marzo 2007
Buonasera,

ho un problema:
creo a run-time nel code behind , dei nodi (treenode) associati alla mia treeview e a questi nodi associo un testo e un'immagine.
Però nel rendering della pagina, viene visualizzata prima l'immagine e poi il testo (ovviamente sulla stessa riga, quella del singolo nodo), ma a me servirebbe il contrario, cioè che si veda prima il testo e poi l'immagine.
c'è un modo per farlo da codice o da css?

il mio codice è il seguente:
MioTreeNode.Text = "tree node";
MioTreeNode.Value = "1";
MioTreeNode.ImageUrl = @"\Image\MiaImg.jpg";
NodoRoot.ChildNodes.Add(MioTreeNode);
MiaTreeview.Nodes.Add(NodoRoot);

Grazie infinite
Alessio
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
purtroppo il TreeView renderizza il testo e l'immagine in due celle <td> separate e senza attributo class, il che rende difficoltoso scambiarne l'ordine con il css. O meglio, è possibile ma l'unico modo che ora mi viene in mente è quello di usare la pseudoclasse nth-child, che non è ben supportata da tutti i browser. Con quella puoi andare a beccare la cella dell'immagine e farla fluttuare a destra.

Mettiamo che la tua TreeView abbia l'attributo CssClass="tree"
<style type="text/css">
.tree td {display:inline;}
.tree td:nth-child(2){float:right;}
</style>

Tu assicurati che la cella <td> contenente l'immagine sia la seconda. Se la tua TreeView avesse ShowExpandCollapse="false" allora l'immagine si troverebbe nella prima cella e in quel caso potresti usare la pseudoclasse :first-child, che è più supportata in quanto facente parte della specifica css 2.1.

Le alternative sarebbero:
  • Fare la stessa cosa ma usando jQuery, perché nth-child viene emulato e quindi funziona sempre in tutti i browser;
  • Manipolare il DOM (ancora una volta aiutandosi con jQuery), in modo che la cella venga fisicamente spostata dopo quella contenente il testo;
  • Non usare la TreeView, ma un proprio controllo che erediti da TreeView e che faccia l'override del metodo che scrive le <td>. Però credo che questa sia una soluzione eccessiva per una semplice questione di presentazione grafica...


ciao
Modificato da BrightSoul il 30 novembre 2011 00.25 -

Enjoy learning and just keep making
132 messaggi dal 22 marzo 2007
Grazie infinite per la risposta... provo le verie opzioni anche se a quanto pare l'orientamento dei grafici è quello di evitare la treeview e quindi probabilmente convertirò l'oggetto treeview con dei tag html.
Grazie ancora
Alessio

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.