Fermer

juillet 22, 2019

Une petite grille avec un panneau de mise à jour personnalisé


Vous voulez passer votre temps à ajouter des fonctionnalités et à ne pas utiliser les éléments de base de votre interface utilisateur. Voici comment, dans Blazor, la bonne combinaison de HTML, de code et de composants peut créer une expérience d’édition personnalisée pour une grille Telerik qui occupe le minimum d’espace sur l’écran.

Dans un billet précédent J'ai combiné ASP.NET MVC View, un composant Blazor, à environ une demi-douzaine de composants Telerik UI for Blazor pour créer une page affichant une grille de clients avec une interface à onglets permettant à l'utilisateur de visualiser informations connexes pour tout client sélectionné. Ce que je n’avais pas fait, c’est de permettre à l’utilisateur de mettre à jour ces informations, c’est le sens de cette colonne.

À bien des égards, cet article est inutile: le TelerikGrid implémente update, delete, et enregistrez la fonctionnalité prête à l'emploi . Toutefois, pour tirer parti de cette fonctionnalité intégrée, vous devez ajouter au moins deux colonnes supplémentaires à la grille afin de contenir les boutons qui implémentent l'ajout et la suppression de lignes. Sur un appareil mobile, vous ne voudrez peut-être pas laisser cet espace à l’écran: dans les écrans de petit format, «Plus grand / plus long» est acceptable, mais «plus large» est diabolique (bien que tout placer sur un seul écran soit idéal, bien sûr). Et cela n'aide pas que j'ai déjà ajouté une colonne à ma grille pour permettre à l'utilisateur de sélectionner une ligne

Réduire les colonnes avec un clic et un double-clic

Je vais donc revoir ma grille pour éliminer le bouton HTML en le remplaçant par une image plus petite sur laquelle l'utilisateur peut cliquer (ou appuyer) pour sélectionner un client lors de l'affichage de ses "données associées". Comme image, j'ai utilisé l'icône favicon.ico fournie avec le temple de projet ASP.NET Core par défaut. Pour activer l'affichage des données associées, il suffit de tirer parti de l'événement click pour l'élément . Dans ce cas, j'utilise la propriété Context de la grille (qui contient l'objet affiché dans la ligne actuelle de la grille) pour capturer le client actuel et le placer dans une propriété définie dans le code de mon composant ( currentCustomer ).

Cela me permet de prendre en charge les mises à jour sans ajouter de nouvelle colonne: je mets le code pour activer mon panneau de mise à jour dans l'événement de l'élément de dblclick . Dans ce code, j'ouvre un TelerikWindow pour afficher les données du client actuel et laisse l'utilisateur le mettre à jour (je mets ce code dans une méthode que j'ai appelée EditItem).

Pour incorporer ce code HTML dans un TelerikGrid tout ce que je dois faire est de définir une colonne avec un élément