Combinaison de composants, HTML et C # pour créer une interface utilisateur efficace
Créer une interface utilisateur efficace ne nécessite pas beaucoup de code – il suffit d’intégrer et de personnaliser le bon ensemble de composants Telerik. En fait, le seul code requis est une propriété unique.
La création de pages Web utiles implique l'intégration de plusieurs composants et technologies. Voici comment intégrer l'interface utilisateur Telerik pour Blazor pour créer une page maître / détail avec plusieurs onglets et un affichage animé qui affiche uniquement les détails à la demande (et avec une seule nouvelle ligne de code). Dans un précédent article, je parcourais le processus de combinant ASP.NET Core Views (ou Razor Pages) avec un composant Blazor contenant un TelerikGrid
. Dans ce scénario, en utilisant C # sur le serveur, j'ai récupéré un ensemble d'objets Customer
que j'ai ensuite transmis, via la propriété Model
d'un View
à un Composant Blazor affichant une liste de clients dans un TelerikGrid
.
Ce processus permet de restituer la page (y compris le composant Blazor) au format HTML sur le serveur avant de l'envoyer au navigateur. Le résultat net est que l'utilisateur obtient une page complète sans avoir à attendre un appel AJAX pour récupérer les données de la page après l'affichage de la page.
Dans mon cas, cependant, chaque client que je montre dans la grille est propriétaire. deux collections: une série de paiements et une autre série d’achats. Lorsque l'utilisateur clique sur un client de la grille, je souhaite afficher les deux listes de paiements et d'achats dans des onglets situés sous la grille des clients. Je souhaite également mettre en évidence le client sélectionné afin que celui-ci reçoive des informations sur le client auquel appartiennent les paiements et les achats affichés.
Mais, une fois la page affichée dans le navigateur, je ne souhaite plus revenir au menu principal. serveur sauf si je dois le faire (sauf les appels AJAX et SignalR, bien sûr). Une combinaison de HTML, de composants Telerik et d'un peu de code fournit tout cela. Je peux même ajouter une animation à mon interface utilisateur.
Dimensionnement de la grille avec les attributs HTML et de composant
Par défaut, le TelerikGrid
occupe l'intégralité de la page, chaque colonne de la grille divisant l'espace de manière égale. . Je peux personnaliser ce comportement en entourant la grille d'un élément
sur 75% de la page. La grille se redimensionne automatiquement pour remplir tout l'élément
au lieu de la page entière.Dans la grille, je peux utiliser la même stratégie avec les colonnes de la grille pour contrôler leur taille (en utilisant des pourcentages plutôt que des largeurs fixes). , permet à la grille d’ajuster sa taille en fonction de la largeur du navigateur). Le résultat ressemble à ceci:
Ajout d’un bouton permettant d’afficher les détails du déclencheur
Afin d’afficher les informations relatives aux achats et aux paiements d’un client spécifique, je dois donner à l’utilisateur la possibilité de sélectionner une ligne dans la grille. Dans une colonne précédente j'ai profité des événements natifs de la grille pour implémenter un bouton «sélectionner une ligne». Cependant, cela impliquait d’appeler puis de supprimer la fonctionnalité d’édition de la grille. Bien sûr, il n’ya rien de mal à cela, mais il est plus logique pour moi d’utiliser un bouton Telerik qui ne me supprime aucun comportement.
Normalement, chaque colonne de la grille génère son propre code HTML. Cependant, en insérant un élément En réunissant tous ces éléments, je peux ajouter une colonne à ma grille contenant un élément Maintenant, je dois configurer la propriété Avant de quitter la grille des clients, je devrais cependant fournir quelques informations à l'utilisateur sur le client actuellement sélectionné. Un petit peu de code supplémentaire dans mon modèle me permettra de définir la propriété Pour gérer l'affichage et la révélation des deux grilles indiquant les paiements et le traitement, je pouvais enfermer ces grilles dans un élément Comme j'ai deux séries de données à afficher, je vais imbriquer un élément Dans chaque élément Je serais le premier à admettre que c'est beaucoup de balisage. Cependant, ce n'est pas beaucoup de code (tout ce que je devais ajouter était la propriété Bien sûr, cette page n’est guère utile sans donner à l’utilisateur la possibilité de mettre à jour cette information, donc je vais regarder cela dans mon prochain post. Restez à l'écoute! dans un élément
je peux inclure à peu près tout ce que je veux dans la colonne (si vous ne me croyez pas, consultez l'article de Ed Charbeneau, à juste titre, «Why Blazor Grid Templates. Vous fera tout remettre en question »). Je peux même intégrer C # dans le modèle en marquant le code avec un symbole @
.
avec un Cliquez sur
gestionnaire d'événements qui intègre le contexte de la ligne dans une propriété appelée currentCustomer
:; vous devrez peut-être restaurer le «T» majuscule
currentCustomer
pour que le client sélectionné soit pris en charge: @functions
{
client privé currentCustomer {get; ensemble; }
// ...
}
Icon
sur l'élément
pour afficher une coche lorsque la propriété contextuelle de la ligne en cours du client correspond au client dans l'onglet
propriété currentCustomer
:
(comme je l'ai fait dans un autre poste . Mais où est le plaisir dans cela? Au lieu de cela, je peux utiliser l'élément
pour que mes paiements et mes achats glissent de façon cool chaque fois que la propriété currentCustomer
n'est pas null
:
dans le conteneur d'animation avec deux onglets: un pour chacun de mes paiements et achats:
je peux simplement supprimer un autre élément
lié à la propriété appropriée sur la propriété currentCustomer
(achats ou paiements). Voici la grille intitulée "Achats" à l'intérieur de son onglet, à titre d'exemple:
currentCustomer
). Mais, en intégrant plusieurs composants, HTML et du code, je dispose d’une interface utilisateur efficace:
Source link