Fermer

avril 24, 2019

Recherchez des booléens de données et de changement de lot dans RadGridView pour


Dans la version 2014 du deuxième trimestre de 2014, nous avons introduit deux fonctionnalités qui accélèreront considérablement le processus de travail de vos utilisateurs finaux avec la grille de données: une fonctionnalité de recherche et une case à cocher Tout cocher dans l'en-tête de colonne.

 Search Row in RadGridView for WinForms by Telerik

Fonctionnalité de recherche intégrée

Grâce à l'interface utilisateur conviviale, la fonctionnalité de recherche de la grille permet aux utilisateurs finaux de naviguer rapidement vers les cellules qui les intéressent. La recherche dans des dizaines de milliers de cellules prend du temps et l'utilisation du thread principal pour des tâches fastidieuses n'est jamais recommandée. C'est pourquoi nous avons implémenté la recherche dans un thread séparé. Cela laisse l'interface utilisateur sensible et en même temps augmente la vitesse de la recherche. De plus, il existe une API publique qui donne accès au mécanisme de recherche. Vous pouvez donc utiliser cette fonctionnalité avec ou sans afficher la ligne de recherche dans l'interface utilisateur de la grille.

Une solution alternative valable serait de filtrer les lignes en fonction de certains critères. Cependant, un critère de filtre ne concerne qu'une colonne, alors que la recherche recherche toutes les colonnes en même temps. De plus, vous ne voudrez peut-être pas masquer et afficher différentes lignes lors de la modification des critères de filtre, mais vous aurez toujours toutes les lignes visibles.

Examinons maintenant les options disponibles pour vos utilisateurs finaux et comment contrôler celles-ci. leur comportement de recherche.

Caractéristiques de l'utilisateur final

L'utilisateur final contrôle l'opération de recherche via la ligne dite de recherche. Afin de permettre aux utilisateurs d'utiliser la ligne de recherche, vous devez exécuter cette seule ligne de code:

this .radGridView1.AllowSearchRow = true ;

 Recherche dans RadGridView pour WinForms par Telerik

Dans la ligne de recherche, les utilisateurs peuvent trouver des commandes permettant de saisir leurs critères de recherche, de changer la sensibilité à la casse et de naviguer dans les résultats de la recherche. Lorsqu'un utilisateur commence à taper dans la zone de recherche, les résultats sont immédiatement mis en surbrillance dans les cellules. Une fois que l'utilisateur a fini de taper, il peut utiliser les boutons précédents ou la combinaison de touches Entrée et Maj + Entrée pour naviguer dans les résultats. Si, à un moment quelconque, il éloigne la sélection des résultats actuellement en surbrillance, le résultat affiché sera relatif à la sélection en cours lors de son prochain déplacement ou de son réapparition.

Voyons maintenant comment contrôler le comportement. de la fonctionnalité de recherche afin qu'elle corresponde à vos besoins spécifiques.

API intuitive et flexible


Tout d'abord, vous pouvez accéder à la ligne de recherche logique par le biais de MasterView de RadGridView:

GridViewSearchRowInfo searchRow = this [19659010] .radGridView1.MasterView.TableSearchRow;

En outre, pour lancer un travail de recherche simple, vous devez simplement appeler la méthode Search de cette ligne:

radGridView1.MasterView.TableSearchRow.Search ( "new york" [19659010]);

Pour votre commodité, un certain nombre d'options sont disponibles au niveau RadGridView, ce qui vous permet d'affiner le mécanisme de recherche.

  • CaseSensitive – Définit si la recherche sera sensible à la casse ou insensible à la casse. La même option que les utilisateurs finaux ont avec le bouton sur l'élément de la ligne de recherche.
  • Culture – Définit quel objet CompareInfo sera utilisé pour les recherches lorsque CaseSensitive est défini sur false.
  • CompareOptions – Une valeur CompareOptions qui définit le mode de comparaison des chaînes lorsque CaseSensitive est défini sur false.
  • HighlightResults – Détermine si les résultats seront mis en surbrillance dans les cellules.
  • AutomaticallySelectFirstResult – Détermine si le premier résultat trouvé par le mécanisme de recherche sera sélectionné et affiché immédiatement après l'avoir trouvé.

Les méthodes SelectNextSearchResult et SelectPreviousSearchResult peuvent être utilisées pour la navigation dans les résultats de la recherche.

radGridView1.MasterView.TableSearchRow.SelectNextSearchResult ();

radGridView1.MasterView.TableSearchRow.SelectPreviousSearchResult ();

radGridView1.MasterView.TableSearchRow.SelectPreviousSearchResult ();

Ceci est correct si vous êtes, par exemple, en fournissant une recherche alternative et ne le faites pas besoin des résultats réels. Si vous souhaitez obtenir les résultats, vous devez cependant vous abonner à l'événement SearchProgressChanged.

Améliorations et considérations multi-threads


Avant d’arriver au gestionnaire d’événements de l’événement, examinons un peu plus les mécanismes internes du mécanisme de recherche. La recherche est exécutée sur un autre thread afin de ne pas nuire à la réactivité de l'interface utilisateur. Une chose intéressante que nous avons constatée au cours du développement est que si vous avez plusieurs résultats de recherche et que vous informez immédiatement chaque thread de la recherche de l'interface utilisateur, vous finissez par faire tellement d'appels que le thread principal est bloqué. Nous avons donc une propriété appelée InitialSearchResultsTreshold. C'est un nombre entier définissant un nombre de résultats de recherche qui seront renvoyés un à un. De cette façon, la recherche affichera très rapidement les premiers résultats. L'utilisateur ne se souciera probablement pas du résultat centième et supérieur juste après avoir entré quelque chose. Ainsi, lorsque ce nombre est atteint, les résultats de la recherche sont renvoyés par groupes. La taille des groupes est contrôlée par la propriété SearchResultsGroupSize. Les valeurs par défaut pour ces propriétés sont 100 et 111 respectivement. Vous pouvez vous demander pourquoi 111? C’est en fait une simple astuce pour masquer le regroupement aux utilisateurs. Lorsque vous obtenez de nombreux résultats de recherche, l'étiquette située dans la zone de recherche se met à jour très rapidement avec le nouveau numéro. Elle devient alors pratiquement illisible. Si la taille de votre groupe est de 100, les deux derniers chiffres de cette étiquette resteront figés jusqu'au retour du dernier groupe de résultats et uniquement si sa taille n'est pas de 100. Lorsque la taille du groupe est de 111, tous les chiffres «tournent» tout le temps et le résultat est meilleur. .

Revenons maintenant au gestionnaire d'événements pour l'événement SearchProgressChanged. Vous pouvez avoir jusqu'à trois cas ici:

  1. Le moment initial où les résultats sont renvoyés un par un. Dans ce cas, les arguments d'événement ont la propriété Cell qui sera affectée à la nouvelle cellule trouvée. La propriété SearchFinished sera false.
  2. Une fois le seuil initial atteint, les résultats sont regroupés et disponibles via la propriété Cells des arguments de l'événement. La propriété SearchFinished sera false.
  3. Une fois la recherche terminée, Cell et Cells seront nulles et SearchFinished sera vrai.

À partir des faits ci-dessus, nous pouvons extraire quelques astuces. Par conséquent, si vous souhaitez afficher tous les résultats un par un, vous devez définir le seuil initial sur une valeur élevée. Si vous souhaitez obtenir tous les résultats en une fois, vous devez le définir sur 0 et la taille du groupe sur une valeur élevée.

Maintenant, si vos utilisateurs finaux perdent quelque chose, ne vous inquiétez pas – la fonctionnalité de recherche les couvre.

Case à cocher «Tout cocher» dans GridViewCheckBoxColumn

Nous avons constaté un très vif intérêt dans notre article de la Base de connaissances concernant la fonctionnalité «Tout cocher» dans RadGridView et avec le Service Pack du deuxième trimestre 2014, nous avons ajouté cette fonctionnalité (GridViewCheckBoxColumn) à RadGridView pour vous faire gagner du temps lors de son intégration. Maintenant, il vous suffit de définir une seule propriété et votre colonne affichera une case à cocher dans la cellule d'en-tête. Cette fonctionnalité s'applique à un niveau de modèle, vous pouvez donc également l'utiliser dans la hiérarchie:

GridViewCheckBoxColumn checkBoxColumn = (GridViewCheckBolColumn) radGridView1.Columns [ "CheckBox" ] [

checkBoxColor = true ;

 Vérifier tout dans RadGridView pour WinForms par Telerik

J'espère que vous avez trouvé cette bonne lecture qui vous permettra de facilement implémenter nos fonctionnalités dans votre projet. Restez à l'écoute pour plus de billets de blog sur les ajouts suivants à la suite:

  • Une version refactorisée de RadScheduler
  • Bibliothèques de traitement de documents
  • Prise en charge multiligne dans RadPageView
  • Les dates librement typées dans RadMaskedEditBox / RadDateTimePicker

Happy coding!


Les commentaires sont désactivés en aperçu. mode




Source link