Accueil > Forum > > > > Treeview
Treeview
mardi 9 septembre 2008 à 16:13:06 |
Treeview

thybang
|
Bonjour, Je suis en train de créer une Treeview. Pour chacun de ses nodes, je voudrai ajouter une image qui me permettrai d'ajouter un élément fils. J'utilise déja l'image ImageURL pour afficher une icône devant le texte de ma node. Je voudrais ajouter l'image pour l'ajout d'un fils aprés ce texte. Quelqu'un a t il une solution? Merci d'avance, -- plus thy avance, plus thy recule ...
|
|
mercredi 10 septembre 2008 à 20:31:46 |
Re : Treeview

ggtry
|
Bonsoir,
Tu peux essayer peut-être avec RenderPostText, qui permets d'écrire de l'html après le texte des noeuds du TreeView, et donc d'ajouter une image ou un imageButton. Je ne crois pas qu'il y ait de solution directe en asp. Ca peut être un peu pénible à gérer toutefois...
GGtry
|
|
jeudi 11 septembre 2008 à 14:50:05 |
Re : Treeview

thybang
|
bonjour,
Merci pour l'info. Je n'avais pas du tout vu ce champs.
Je test de suite.
plus thy avance, plus thy recule ...
|
|
jeudi 11 septembre 2008 à 15:22:17 |
Re : Treeview

ggtry
|
Bonjour,
Désolé, je n'ai pas été précis : renderposttext s'utilise à travers une classe. Un exemple (le plus simple à faire, mais pas forcément le plus simple à gérer car tu devras créer ton treeview en dynamique, par le code) avec un imagebutton (en vb) :
Public Class arbrenoeud Inherits TreeNode Protected Overrides Sub RenderPostText(ByVal writer As HtmlTextWriter) writer.AddAttribute(HtmlTextWriterAttribute.Type, "image") writer.AddAttribute(HtmlTextWriterAttribute.Src, "Ton fichier image") writer.AddAttribute("alt", "image2") writer.RenderBeginTag(HtmlTextWriterTag.Input) writer.RenderEndTag() End Sub End Class
(mais le problème sera de retrouver quel imagebutton a été pressé pour savoir où ajouter un childnode...)
GGtry
|
|
jeudi 11 septembre 2008 à 16:51:43 |
Re : Treeview

thybang
|
Le problème de savoir quelle image button a été pressé est résolu en ajoutant uen fonction javascript : par exemple : writer.AddAttribute(HTMLTextWriterAttribute.Onclick, "alert(" + this.Value + ");"); Par contre, en utilisant cette méthode, l'event javascript s'effectue, et l'arbre et raffraichi, mais sans valeur au noeud. Je réécrit alors la méthode SaveViewState et LoadviewState protected override object SaveViewState() { object[] arrState = new object[2]; arrState[0] = base.SaveViewState(); arrState[1] = this.NodeText; return arrState; } protected override void LoadViewState(object savedState) { if (savedState != null) { object[] arrState = savedState as object[]; this.NodeText = (string)arrState[1]; base.LoadViewState(arrState[0]); } } Par contre là, j'ai un problème lorsque l'arbre se raffraichie. " The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request. " Je comprend pas du tout pourquoi il dit ne pas reconnaitre les éléments de l'arbre.
plus thy avance, plus thy recule ...
|
|
jeudi 11 septembre 2008 à 18:05:08 |
Re : Treeview

ggtry
|
Pour saveviewstate etc., je ne peux pas trop t'aider immédiatement... Mais que veux-tu dire exactement par "l'arbre est rafraîchi, mais sans valeur au noeud" ? Comment crées-tu ton arbre ? et à quel moment ?
GGtry
|
|
jeudi 11 septembre 2008 à 18:59:04 |
Re : Treeview

ggtry
|
Réponse acceptée !
Sur ton code, NodeText fait référence à quoi exactement ?
Je t'envoie un exemple (mais c'est une class vb, je ne connais le c#) qui pourrait faciliter la chose peut-être, avec une classe qui hérite de treeview pour pouvoir construire complétement un arbre personnalisé en asp. J'ai ajouté également une propriété (nommée ici CImage, qui est boolean, et qui détermine si le noeud doit recevoir ou non une image sur la droite). J'ai fait un test en ajoutant des noeuds enfants sur un clic sur l'imagebutton des noeuds principaux : ça à l'air de marcher correctement.
Code VB :
Imports Microsoft.VisualBasic Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.Services.Protocols
Namespace Arbre Public Class MonArbre Inherits TreeView Protected Overrides Function CreateNode() As System.Web.UI.WebControls.TreeNode Return New arbrenoeud() End Function End Class Public Class arbrenoeud Inherits TreeNode Protected Overrides Sub RenderPostText(ByVal writer As HtmlTextWriter) If CImage2 = False Then Return writer.AddAttribute(HtmlTextWriterAttribute.Type, "image") writer.AddAttribute(HtmlTextWriterAttribute.Src, "et1.png") writer.AddAttribute("alt", "image2") writer.AddAttribute("onclick", "poster(this)") writer.RenderBeginTag(HtmlTextWriterTag.Input) writer.RenderEndTag() MyBase.RenderPostText(writer) End Sub Private CImage2 As Boolean Public Property CImage() As Boolean Get Return CImage2 End Get Set(ByVal Value As Boolean) CImage2 = Value End Set End Property Protected Overrides Function SaveViewState() As Object Dim arrState(2) As Object arrState(0) = MyBase.SaveViewState() arrState(1) = Me.CImage Return arrState End Function Protected Overrides Sub LoadViewState(ByVal savedState As Object) If Not savedState Is Nothing Then Dim arrState() As Object = savedState Me.CImage = CType(arrState(1), Boolean) MyBase.LoadViewState(arrState(0)) End If End Sub End Class End Namespace
Dans ma page,
en y ajoutant : <%@ Register TagPrefix="toto" Namespace="Arbre" %> je peux écrire en statique, par exemple :
<toto:MonArbre ID="treeview1" runat="server"> <Nodes> <toto:ArbreNoeud Text="Premier Noeud" CImage="true" ImageUrl="et2.png" Value="1"> <toto:ArbreNoeud Text="Texte1" ImageUrl="et2.png" Value="Texte1"></toto:ArbreNoeud> <toto:ArbreNoeud Text="Texte2" ImageUrl="et2.png" Value="Texte2"></toto:ArbreNoeud> </toto:ArbreNoeud> <toto:ArbreNoeud Text="Deuxième Noeud" CImage="true" ImageUrl="et2.png" Value="2"> <toto:ArbreNoeud Text="Texte4" ImageUrl="et2.png" Value="Texte4"></toto:ArbreNoeud> <toto:ArbreNoeud Text="Texte5" ImageUrl="et2.png" Value="Texte5"></toto:ArbreNoeud> </toto:ArbreNoeud> </Nodes> </toto:MonArbre>
GGtry
|
|
jeudi 11 septembre 2008 à 19:07:36 |
Re : Treeview

ggtry
|
Ah oui, un petit oubli : ce que j'ai fait sur CImage est assez idiot. Plutôt qu'une valeur booléenne, il vaudrait mieux changer et y mettre le nom de fichier de l'image à afficher à droite... et modifier le test en conséquence. Ca permettra de changer facilement l'image à afficher au besoin.
GGtry
|
|
vendredi 12 septembre 2008 à 11:03:55 |
Re : Treeview

thybang
|
Gros merci ...
Pour répondre à ta question, le NodeText est une chaîne de caractère correspondant au text à afficher. en fait, je veux que chaque noeud ait la forme : <ImageURL> <Text> <CImage>
En réalisant ce que j'ai fait, le <Text> n'apparait pas.
plus thy avance, plus thy recule ...
|
|
vendredi 12 septembre 2008 à 13:51:22 |
Re : Treeview

ggtry
|
Bonjour, Pour ton problème de disparition de texte, et l'autre problème avec loadviewstate. En fait, le problème 1/ se pose probablement du fait que tu ajoutes les noeuds principaux lors du onload (dans ce cas, il faudrait mettre enableviewstate à false, mais cela pourrait poser problème pour les ajouts faits ensuite). En le faisant sur OnInit, le problème devrait ne pas se poser et tu n'aurais plus besoin du loadviewstate. Cela dit, l'ajout de nouveau noeud à l'aide du bouton risque à son tour d'être problèmatique : il vaut donc mieux utiliser le code plus complet que j'ai envoyé, qui ne devrait pas poser problème. Pour le problème 2/ (et plus généralement), tu peux regarder ici : [ Lien ]GGtry
|
|
Cette discussion est classée dans : texte, image, ajouter, treeview, fils
Répondre à ce message
Sujets en rapport avec ce message
texte sur image [ par jesusonline ]
J'aimerais rajouter un texte sur chacune de mes images de mon site mais comme j'en ai pas mal je voudrais savoir si c pas possible directement avec l
Pb pour inserer texte dynamiquement sur une image [ par okayre1 ]
Comment insérer dynamiquement un texte sur une image ?
texte dans une image [ par tmcuh ]
voilà je cherche à mettre du texte dans une image, c'est le truc le plus basic je pense pour faire des pages web mais en asp.net j'arrive pas :( est
Image dans PDF [ par tikenjoe ]
Bonjour à tous!J'essaie depuis plusieurs jours d'utiliser FPDF pour ASP, mais c'est la grosse galère!!! J'arrive à générer du texte dans un pdf. &n
deplacer une image parcouru dans un serveur [ par perle007 ]
bonjour a tousje suis nouvelle sur le forum j'ai une question a poser je vous serez tres reconnaissante si vous me donner la reponsealors, je travail
TreeView : retour à la ligne du texte [ par CyrilTitard ]
BonjourAfin de limiter la largeur d'un TreeView à un espace défini, je souhaiterai savoir comment instaurer automatiquement un retour à la ligne du te
Justifier un texte et l'exporter dans une image - Besoin d'une fonction [ par chrislcf ]
Bonjour à tous,Je découvre lentement ce site et je suis à la recherche d'un code source car n'étant pas programmeur je ne m'en sors pas. Néanmoins je
Treeview & CSS [ par kaygee ]
Hello à tous, J'ai un petit souci pour le mise en page de mon treeview. J'ai donc un treeview de 200px de width et je veux sur mes noeuds parents j
Comment ajouter pop up sur texte [ par choutaleina ]
Bonjour, j'ecris et n'importe qui peut m'aider.J'ai ajouter un info-bulle sur un texte comme suit:Moi-même mai s pour
ajouter dans un treeview ? [ par superkiller ]
bonjour, je dois creer un menu treeview dont les lien et nom des nodes sont dans une base de données access.le probleme est que je ne sais p
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
STABILITé DU DéBIT 3GSTABILITé DU DéBIT 3G par benzekrighizlane
Cliquez pour lire la suite par benzekrighizlane
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|