Accueil > Forum > > > > Dropdownlist multi-sélectionnable
Dropdownlist multi-sélectionnable
jeudi 26 mai 2005 à 12:50:10 |
Dropdownlist multi-sélectionnable

systemic_anomaly
|
Bonjour tt le monde,
J'aimerais disposer d'une dropdownlist
multi-sélectionnable. On pourrait donc sélectionner plusieurs items dans cette
dropdown. Il semblerait que ce contrôle n'offre pas cette possibilité. J'ai
alors pensé à faire une listbox mais, pour des raisons d'affichage, cette liste
doit se résumer à une ligne (comme le look d'une dropdown). Ce qui, au final,
n'est pas très pratique (et pas franchement esthétique).
Donc, si qqun
connait un contrôle de substitution que je ne connaitrais pas ou qui aurait
développé son propre contrôle répondant à mes critères (et qui soit surtout
facilement implémentable car le temps joue contre moi...) je serais preneur !
Merci d'avance
|
|
jeudi 26 mai 2005 à 13:11:47 |
Re : Dropdownlist multi-sélectionnable

jesusonline
|
Malheureusement ce n'est pas possible en HTML de faire ce que tu veux, donc il faut passer par du javascript. Mon idée sur la question :) est d'utiliser le composant CheckBoxList (je me rappelle plus du nom, ni meme de son existence en .net 1). puis de faire un peu de js & co pour avoir ce que tu veux. Donc créer un nouveau UserControl (c'est ce qu'il y a de plus simple) puis tu met dedans le code suivant. <div> <a href="javascript:void(0)" onclick="javascript:afficher()" id="titre" runat="server" /> <div id="list" style="display:none"> <asp:CheckBoxList blablabla /> </div> </div> puis du js function afficher() { document.getElementById("list").style.display = "block"; } puis dans le code behind de cet UC, tu mets quelques properties interressante qui te renvoie titre.text etc.. pour que tu puisses l'avoir ou tu veux :-) Le code javascript & co, c'est un peu "au pif" il faudra bien sur l'améliorer, va donc voir sur javascriptfr.com Le mieux serait bien sur d'utiliser les controles Composites : [ Lien ]
Cyril - MCP ASP.netWebmaster de : Hoshimi.CodeS-SourceS.fr
|
|
jeudi 26 mai 2005 à 18:40:15 |
Re : Dropdownlist multi-sélectionnable

Nurgle
|
jesusonline --> CheckBoxList existe bien en .net 1 (et oui le .net 1 existe encore...  )
Sinon si tu veux te lancer dans les contrôles composites vas-y, mais c'est se compliquer la vie pour pas grand chose.
avec une CheckBoxList ou une ListBox ça devrait suffire...  (les deux permettent une selection multiple)
Nurgle C'est une grande folie que de vouloir être sage tout seul !
|
|
jeudi 26 mai 2005 à 18:47:54 |
Re : Dropdownlist multi-sélectionnable

Nurgle
|
et j'ai faillit oublier une grosse dose de bidouillage en javascript (le plus dure en somme)
--> javascriptfr
où voir même l'ajax (voir la superbe source
de jesusonline) pour recharger uniquement le composant, enregistrer sur
le serveur ce qu'il a choisit puis le laisser choisir autre chose s'il
a envi !
Nurgle C'est une grande folie que de vouloir être sage tout seul !
|
|
jeudi 26 mai 2005 à 20:31:38 |
Re : Dropdownlist multi-sélectionnable

jesusonline
|
Les controles composites c'est bien non ? et puis c'est tellement simple d'emploi ;-) Je suis d'accord avec Nurgle, que ma solution est peut etre un peu excessive, mais au moins si tu as deux endroits à faire ceci, ben tu te refarciras pas l'implementation deux fois :p En tout cas ca m'a peut etre donnée une idée, ce soir avant de m'endormir, un petit controle Composite en .net 2 pour faire suite aux splendides articles de TKfé : http://blogs.developpeur.org/tkfe/archive/2005/05/25/6952.aspx Pour la solution du clientCallBack et de ma "super source" pour l'utiliser il faut etre en .net 2 et non avec ce vieil ;) asp.net 1.1 donc dans un projet classique (autre que notre folie sur CS) il vaut mieux attendre une version finale, pour l'instant ca va bien pour s'entrainer, pour apprendre etc...
Cyril - MCP ASP.netWebmaster de : Hoshimi.CodeS-SourceS.fr
|
|
vendredi 27 mai 2005 à 09:04:10 |
Re : Dropdownlist multi-sélectionnable

systemic_anomaly
|
Merci à vous deux pour vos explications mais malheureusement ça ne m'aide pas.
Les contrôles composites me plaisaient bien mais cela prend du temps qui comme je l'ai déjà dit me manque cruellement  .
Je vais me faire haïr par la communauté des défenseurs du Javascript mais moi le Javascript c'est pas ma tasse de thé  .
Merci encore.
|
|
vendredi 27 mai 2005 à 09:46:41 |
Re : Dropdownlist multi-sélectionnable

jesusonline
|
Ben la t'as pas bien le choix :-/ Tu peux pas faire ce que tu veux en HTML pure, donc il faut obligatoirement passer par javascript + CSS ... j'ai pas eu le temps hier soir d'y regarder :( mais je vais quand meme essayer de faire un truc rapide aujourdhui, si bien sur ca t'interesse ;)
Cyril - MCP ASP.netWebmaster de : Hoshimi.CodeS-SourceS.fr
|
|
vendredi 27 mai 2005 à 10:11:13 |
Re : Dropdownlist multi-sélectionnable

systemic_anomaly
|
Bien sûr que ça m'intéresse tjs.
Merci bcp pour l'attention que tu porte à mon problème.
|
|
vendredi 27 mai 2005 à 12:27:07 |
Re : Dropdownlist multi-sélectionnable

jesusonline
|
Je viens d'avoir une vingtaine de minute :) Donc voici ce que j'ai fait. Bien sur c'est pas joli etc... reste une grande partie de présentation & co, mais bon le principal y est :)
Imports System.ComponentModel Imports System.Web.UI
<ToolboxData("<{0}:MultiDrop runat=""server""></{0}:MultiDrop>")> Public Class MultiDrop Inherits System.Web.UI.WebControls.ListBox
Private _Title As String <Bindable(True), Description("Text pour du lien pour afficher le truc")> _ Public Property Title() As String Get Return _Title End Get Set(ByVal value As String) _Title = value End Set End Property Protected Overrides Sub AddAttributesToRender(ByVal writer As System.Web.UI.HtmlTextWriter) MyBase.Attributes.Add("style", "display:none;") MyBase.AddAttributesToRender(writer) End Sub Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter) output.Write("<div>") output.Write("<a href=""javascript:void(0)"" onclick=""javascript:Show('" & Me.ClientID & "')"">" & _Title & " </a>") MyBase.Render(output) output.Write("</div>") End Sub
Private Sub MultiDrop_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Me.Page.IsClientScriptBlockRegistered("MultiDrop") Then Dim script As String = "<script type=""text/javascript""> " & vbNewLine & _ " function Show(id) " & vbNewLine & _ "{" & vbNewLine & _ " var elmt=document.getElementById(id);" & vbNewLine & _ " if (elmt.style.display == 'block')" & vbNewLine & _ " {" & vbNewLine & _ " elmt.style.display= 'none';" & vbNewLine & _ " }" & vbNewLine & _ " else" & vbNewLine & _ " {" & vbNewLine & _ " elmt.style.display= 'block';" & vbNewLine & _ " }" & vbNewLine & _ "}" & vbNewLine & _ "</script>" Me.Page.RegisterClientScriptBlock("MultiDrop", script) End If End Sub End Class
J'ai pas utilisé de techniques de .net 2 donc j'ai ecrit le fichier js "à l'ancienne" et non dans une webressource :) si j'ai le temps, je pousserais un peu plus loin le rendu du controle, mais je pense que ca pourrait bien te depanner ;-)
Cyril - MCP ASP.netWebmaster de : Hoshimi.CodeS-SourceS.fr
|
|
vendredi 27 mai 2005 à 13:41:02 |
Re : Dropdownlist multi-sélectionnable

jesusonline
|
Avec un rendu un peu plus correct voila ce que ca donne  Le code CSS utilisé :
.MultiDrop a { color:Black; text-decoration: none; background-color:#FAFAFA; padding:0px 15px 0px 5px; background-position:center right; background-repeat:no-repeat; background-image: url(/Cyril/images/expand-closed.gif); }le code du controle :
Imports System.ComponentModel
Imports System.Web.UI
<ToolboxData( "<{0}:MultiDrop runat=""server""></{0}:MultiDrop>")> Public Class MultiDrop
Inherits System.Web.UI.WebControls.ListBox
Private _Title As String
<Bindable( True), Description("Text pour du lien pour afficher le truc")> _
Public Property Title() As String
Get
Return _Title
End Get
Set(ByVal value As String)
_Title = value
End Set
End Property
Protected Overrides Sub AddAttributesToRender(ByVal writer As System.Web.UI.HtmlTextWriter)
MyBase.Attributes.Add("style", "display:none;position:relative;")
MyBase.AddAttributesToRender(writer)
End Sub
Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
output.Write( "<span style=""position:absolute"" class=""MultiDrop"">")
output.Write( "<a href=""javascript:void(0)"" onclick=""javascript:Show('" & Me.ClientID & "',this)"">" & _Title & " </a>")
MyBase.Render(output)
output.Write( "</span>")
End Sub
Private Sub MultiDrop_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Me.Page.IsClientScriptBlockRegistered("MultiDrop") Then
Dim script As String = "<script type=""text/javascript""> " & vbNewLine & _
" function Show(id, lien){" & vbNarrow & _
" var elmt=document.getElementById(id);" & vbNewLine & _
" if (elmt.style.display == 'block'){elmt.style.display = 'none';lien.style.backgroundImage = 'url(/Cyril/images/expand-closed.gif)';}" & vbNewLine & _
" else{elmt.style.display = 'block';lien.style.backgroundImage = 'url(/Cyril/images/expand-open.gif)';}" & vbNewLine & _
" }" & vbNewLine & _
"</script>"
Me.Page.RegisterClientScriptBlock("MultiDrop", script)
End If
End Sub
End ClassEt pour info le code aspx qui n'est ni plus ni moins que celui d'une listBox
Veuillez selectionner une ville :
<cc1:MultiDrop ID="MultiDrop1" runat="server" SelectionMode="Multiple" title="Ville"> <asp:ListItem>Lyon</asp:ListItem> <asp:ListItem>Paris</asp:ListItem> <asp:ListItem>Lille</asp:ListItem> <asp:ListItem>Marseille</asp:ListItem> </cc1:MultiDrop>J'espere qu'avec tout ca, ton problème sera résolu ;-) Au début, je voulais pas partir sur la base d'une listbox, car on peut pas customisé avec css l'interieur d'une listebox, mais c'est tellement plus simple :-)
Cyril - MCP ASP.netWebmaster de : Hoshimi.CodeS-SourceS.fr
|
|
Cette discussion est classée dans : contrôle, multi, dropdownlist, dropdown, sélectionnable
Répondre à ce message
Sujets en rapport avec ce message
problème dropdownlist [ par lenneth666 ]
Voila alors j 'ai une datagrid. Dan sune colonne je veut que lorsque l'on passe en mode édition, un label laisse place a une dropdownlist.Et qd je cli
ListBox et couleurs ! [ par yous ]
Comment fait on pour mettre des couleurs de fond dans un ListBox ou DropDownList ?Ici (Sur CodesSources), lorsque l'on conçoit un message, on a la pos
DropDownList ajout d'evenement [ par waldpest ]
Bonjour à tous, Voila mon problème, J'ai une dropdownlist mais je ne veux rien mettre dedans je veux tout simplement que lorsque qu'on clic dessus m
[ASP.NET] Site multi-langues [ par neofenix ]
Bonjour a tous, Je sais que Visual Studio permet, à partir des fichiers resx, de réaliser un site multi-langues. Je souhaitais savoir si une fois que
récupérer la valeur d'un contrôle [ par mezianiomar ]
Bonjour, Comment récupérer par exemple le texte d'un "TextBoxe" affiché dynamiquement sur une page. NB: le texte est saisie après que la page est char
dropdownlist changement de valeur [ par electika ]
Bonjour, Je programme en ASP.NET + C# et j'ai un petit problème: illustration: http://www.imagup.com/pics/1271468875.html Je souhaite faire un ajou
dropdownlist + datasource [ par zoot06 ]
C'est idiot mais je trouve pas de solution. J'ai une dropdownlist que je veux coupler avec des champs d'une base de données. Je me suis qu'en mode de
Transformer un label en DropDownList [ par jeffwow ]
Bonjour. Ma demande est assez particulière je sais. J'aimerais que lorsqu'on clique sur un label, celui-ci se transforme en Dropdownlist (en ajax,
remplir une dropdownlist [ par yassinozi ]
bonjour tout le monde quelqu'un peut m'aider svp,je viens de commencer un projet fin d'année en asp.net et j'ai trouvé quelque deffeculté par exemple
Erreur de script sur contrôle de validation [ par dublow ]
Bonjour, J'ai crée une master page, un contrôle utilisateur et j'ai 2 pages contenu. Sur le contrôle utilisateur, j'ai une fonction qui masque/affic
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
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
|