¿Cuál es el mejor patrón para seleccionar todas o anular la selección de todas las casillas de verificación? Puede alguien llegar a una mejor manera de tenerlo en esta forma:
Más utilizable seleccione todo/anule la selección de todas las casillas de verificación
Respuesta
Seré honesto, nunca me ha gustado la idea de utilizar una casilla de verificación para la opción "seleccionar todo", aunque la veas mucho. No es un solo elemento para ser recogido, es una acción. Y si selecciona todo y luego comienza a deseleccionar elementos individuales en la lista, el estado "marcado" de la casilla de verificación Seleccionar todo se vuelve intrínsecamente confuso. Prefiero usar un enlace/botón simple pero obvio que alterna entre "seleccionar todo" y "deseleccionar todo" al hacer clic en él. No hay ningún estado para confundirlo cuando se han deseleccionado elementos individuales, y el resultado de presionar el botón nunca está en duda. La naturaleza exclusiva de la operación hace que sea perfectamente razonable alternar (en lugar de usar dos botones siempre visibles, uno para seleccionar todo, uno para deseleccionar todo), ya que está como máximo a dos clics de su comportamiento deseado. Y separa visualmente esta "acción" de los elementos individuales, lo que evita los errores y distingue el comportamiento.
Fui con este enfoque, ¡gracias! – joe
Acabo de toparme con este problema, gran solución. –
Esta respuesta proporciona algún código para implementar esta idea en WinForms: http://stackoverflow.com/a/35616240/848199 –
yo diría que es la forma más intuitiva para que el Seleccionar/Deseleccionar todo. Pero también he visto que algunos usan un enlace, pero yo preferiría eso.
tener un botón de verificación que realiza una acción en lugar de designar una opción discreta no es muy útil IMO. –
Simplemente lleve la casilla de verificación Seleccionar todo más cerca del borde izquierdo. Tal vez cambie el texto algo así como "Todos los juegos anteriores", etc. para dejar en claro qué "todos" se está seleccionando.
Si puede formatear su cuadro de diálogo con listas, me gusta el método de "casilla de verificación en el encabezado de la lista" (y la mayoría de los usuarios saben cómo usarlo).
Si no desea utilizar una lista, creo que un botón o un hipervínculo (que alterna entre "Seleccionar todo" a "Select None" funcionarían mejor que otra casilla que es difícil de haga clic en todas las casillas de verificación. Además, desmarcar la casilla de verificación "marcar todo" no implica necesariamente una funcionalidad de "marcar ninguno" para un usuario.
Esta es la lógica para que un Control de usuario en WinForms implemente la respuesta de @nezroy. Esto le permite especificar una acción inicial [una de SelectAll o Deseleccionar todo] también.
Imports System.ComponentModel
''' <summary>
''' A control which allows the user to toggle back-and-forth
''' between selecting all of something, or de-selecting all of something.
''' </summary>
Public Class uscSelectDeselectAll
#Region "Events"
Public Event CurrentAction_Changed()
#End Region
#Region "Enums"
Public Enum SelectAction
SelectAll
DeselectAll
End Enum
#End Region
#Region "Module-level variables"
Private _initialAction As SelectAction
Private _currentAction As SelectAction
#End Region
#Region "Properties"
Public Property CurrentAction As SelectAction
Get
Return _currentAction
End Get
Private Set(value As SelectAction)
_currentAction = value
SetActionLinkText()
End Set
End Property
<Browsable(True)>
<EditorBrowsable(EditorBrowsableState.Always)>
<DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)>
Public Property InitialAction As SelectAction
Get
Return _initialAction
End Get
Set(value As SelectAction)
_initialAction = value
SetActionLinkText()
End Set
End Property
#End Region
#Region "Procedures"
Private Sub SetActionLinkText()
If _currentAction = SelectAction.SelectAll Then
llActionText.Text = "Select All"
ElseIf _currentAction = SelectAction.DeselectAll Then
llActionText.Text = "Deselect All"
Else
Throw New InvalidEnumArgumentException("Invalid SelectActionProvided.")
End If
End Sub
Private Sub ToggleAction()
If CurrentAction = SelectAction.SelectAll Then
CurrentAction = SelectAction.DeselectAll
ElseIf CurrentAction = SelectAction.DeselectAll Then
CurrentAction = SelectAction.SelectAll
Else
Throw New Exception("CurrentAction has the invalid value: " & CurrentAction.ToString())
End If
End Sub
#End Region
#Region "Event Handlers"
Private Sub llActionText_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles llActionText.LinkClicked
RaiseEvent CurrentAction_Changed()
ToggleAction()
End Sub
Private Sub uscSelectDeselectAll_Load(sender As Object, e As EventArgs) Handles Me.Load
CurrentAction = InitialAction
End Sub
#End Region
End Class
- 1. jquery seleccione todas las casillas de verificación
- 2. Desmarque todas las casillas de verificación
- 3. Marque/Desmarque todas las casillas de verificación
- 4. HTML Las casillas de verificación en la lista de selección
- 5. Obteniendo todas las casillas de verificación seleccionadas de un FormCollection
- 6. jQuery - alternar seleccionar todas las casillas de verificación
- 7. javascript seleccionar todas las casillas de verificación en una tabla
- 8. Desmarque todas las casillas de verificación en un ListView encargo
- 9. ¿Cómo encontrar todas las casillas de verificación no seleccionadas?
- 10. casillas de verificación jQuery
- 11. Usando el enlace marcado en knockout con una lista de casillas de verificación, marca todas las casillas de verificación
- 12. Cómo obtener todas las casillas marcadas
- 13. casillas de verificación de pirámide
- 14. Marque todas las casillas de verificación en la carga de la página con jQuery
- 15. Si las declaraciones para Casillas de verificación
- 16. Jquery marque las casillas de verificación
- 17. jQuery - seleccionar todas las casillas de verificación con el nombre de la matriz js
- 18. QTreeView Casillas de verificación
- 19. ¿Transforma las casillas de verificación (múltiples selecciones) en botones de opción o casillas con una sola selección?
- 20. ¿Cómo obtengo los valores de todas las casillas de verificación seleccionadas en una solicitud de Django.POST?
- 21. Manipular, casillas de verificación de la lista
- 22. Casillas de verificación en páginas web: ¿cómo hacerlas más grandes?
- 23. Alinear casillas de verificación (web)
- 24. Seleccione todas las etiquetas de entrada donde el tipo no es la casilla de verificación
- 25. Obtener valores de todas las casillas de verificación en Excel con VBA
- 26. ExpandableListView y casillas de verificación
- 27. Desactivar todas las casillas de verificación dentro de una tabla con jquery
- 28. ¿Manera correcta de marcar todas las casillas de verificación en ListView?
- 29. jQuery matriz de todas las casillas de verificación seleccionadas (por clase)
- 30. cómo obtener todas las casillas de verificación seleccionadas nombre de nodo en TreeView utilizando C# 4.0?
relacionado http://ux.stackexchange.com/questions/21415/ux-review-word-for-select-all –
relacionado http://ux.stackexchange.com/questions/1382/check-all-uncheck- all-checkboxes-with-respecta-to-usability –