2009-04-21 10 views

Répondre

35

Vous pouvez utiliser le contrôle System.Web.UI.WebControls.CheckBoxList ou utiliser le contrôle System.Web.UI.WebControls.ListBox avec la propriété SelectionMode définie sur Multiple.

+3

J'ai utilisé CheckBoxList et TextBox. Montrer et cacher avec javascript et positionnement absolu. –

+1

@Jan Remunda pouvez-vous donner un javascript détaillé pour cela? Je l'apprécierais! –

1

HTML ne supporte pas une liste déroulante avec des cases à cocher. Vous pouvez avoir une liste déroulante ou une liste de cases à cocher. Vous pourriez simuler une liste dropdowncheckbox en utilisant javascript et cacher des divs, mais ce serait moins fiable que juste une liste de cases à cocher standard.

Il existe bien sûr des contrôles tiers qui ressemblent à une liste déroulante, mais ils utilisent les astuces div.

Vous pouvez également utiliser une double liste déroulante, qui gère la sélection multiple en déplaçant les éléments d'avant en arrière entre deux listes. Cela a l'avantage d'être facilement visible tous les articles sélectionnés en même temps, même si la liste des articles est longue

(Imaginez une liste de chaque ville dans le monde, avec seulement le premier et le dernier sélectionnés)

1

J'aime les contrôles Infragistics. Le WebDropDown a ce dont vous avez besoin. Le seul inconvénient est qu'ils peuvent être un peu dépensier.

1
+1

Ce message a été marqué comme spam et downvoted, mais le contrôle semble être agréable et il est libre, donc il obtient mon upvote. Peut-être que irfan peut vous donner un support technique gratuit en échange du lien. :) –

+0

D'accord. Cela a probablement été bloqué par le filtre de websense de beaucoup de gens qui est une chose tellement stupide d'avoir à s'occuper de mon temps avec quand je pourrais résoudre des problèmes importants. –

27

jQuery Dropdown Check List peut être utilisé pour transformer un élément HTML régulier de sélection multiple dans une liste de cases à cocher déroulante, il fonctionne sur le client peut donc être utilisé avec une technologie côté serveur:

alt text http://dropdown-check-list.googlecode.com/svn/trunk/doc/demo.png

+1

Je pense que cette solution est juste ce que la question a demandé! Une alternative très solide! –

+6

Mais cela dépend du framework jQuery. –

+0

exactement ce que je cherchais, merci beaucoup –

0

Voici un nouveau contrôle Web ASP.NET appelé Champ de liste multi-sélection au http://www.xnodesystems.com/. Il est capable de:

(1) Multi-sélection; (2) saisie semi-automatique; (3) Validation.

3

Je l'ai utilisé le contrôle open source à http://dropdowncheckboxes.codeplex.com/ et été très heureux avec elle. Mon ajout était de permettre à une liste de fichiers vérifiés d'utiliser uniquement des noms de fichiers au lieu de chemins complets si la légende 'sélectionnée' devient trop longue. Mon ajout est appelé à la place de UpdateSelection dans votre gestionnaire de publication:

// Update the caption assuming that the items are files<br/> 
// If the caption is too long, eliminate paths from file names<br/> 
public void UpdateSelectionFiles(int maxChars) { 
    StringBuilder full = new StringBuilder(); 
    StringBuilder shorter = new StringBuilder(); 
    foreach (ListItem item in Items) { 
    if (item.Selected) { 
     full.AppendFormat("{0}; ", item.Text); 
     shorter.AppendFormat("{0}; ", new FileInfo(item.Text).Name); 
    } 
    } 
    if (full.Length == 0) Texts.SelectBoxCaption = "Select..."; 
    else if (full.Length <= maxChars) Texts.SelectBoxCaption = full.ToString(); 
    else Texts.SelectBoxCaption = shorter.ToString(); 
} 
Questions connexes