2010-05-18 3 views
0

Normalement, les cases à cocher HTML sont regroupées en fonction du nom. Est-il possible de grouper une case autre que le nom?HTML Checkbox grouping

Merci!

+2

sont indépendants de cases à cocher eachother, peut-être vous dire radios? alors non seulement le nom. – Galen

+1

@Galen: case à cocher est à choix multiple, radiobutton est un choix unique. L'avantage d'avoir le même nom est que vous avez directement * toutes * sélectionné des valeurs dans un tableau du côté serveur en un seul appel. De cette façon, vous n'avez pas besoin de les saisir tous ensemble dans plusieurs appels, puis de les déterminer un par un s'ils sont remplis ou non (c'est-à-dire null/vide ou non). – BalusC

+1

@balusC: je connais la différence. Je n'étais pas sûr que le demandeur savait à cause de sa question. En espérant qu'il clarifierait – Galen

Répondre

2

Pas en HTML. Mais vous pouvez écrire une logique de code du côté serveur qui les regroupe en fonction de certaines conditions, par ex. un préfixe ou un suffixe commun dans le nom du paramètre ou même la valeur du paramètre.

Cependant, ce n'est que maladroit. Profitez simplement du bénéfice HTML que vous avez donné avec la possibilité de les regrouper par leur nom. Si vous avez un problème avec cela, alors il doit être corrigé ailleurs, peut-être avec l'ID d'élément (pour indiquer l'unicité dans l'arborescence) ou la classe de style d'élément (pour indiquer une signification commune dans l'arborescence).

0

Vous pouvez trier les éléments ajoutés dans votre chemin. Dans l'exemple suivant pour une ASP.Net CheckBoxList i utilisé un comparateur pour trier les articles décroissant (changer dans votre chemin):

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     Dim allChk As New ArrayList(Me.CheckBoxList1.Items) 
     allChk.Sort(New SortComparer(False)) 
     Me.CheckBoxList1.Items.Clear() 
     For Each item As ListItem In allChk 
      Me.CheckBoxList1.Items.Add(item) 
     Next 
    End Sub 

    Public Class SortComparer 
     Implements IComparer 
     Private ascending As Boolean 

     Public Sub New(ByVal asc As Boolean) 
      Me.ascending = asc 
     End Sub 

     Public Function [Compare](ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare 
      Return x.ToString.CompareTo(y.ToString) * DirectCast(IIf(Me.ascending, 1, -1), Int32) 
     End Function 
    End Class