Tableau Kanban

Il KanbanBoard affiche les enregistrements d’une table sous forme de cartes dans des couloirs côte à côte, une voie pour chaque valeur d’une colonne : la note d’une opportunité, la raison de statut d’une tâche, le compte auquel appartient un enregistrement. Chaque voie est lue seule via une vue, une page à la fois, avec la même requête et la même sécurité qu’une grille, et affiche son nombre et ses totaux dans son en-tête. Dans un Editable plateau, une carte se déplace vers une autre voie en la faisant glisser, depuis le clavier ou via son menu Déplacer vers le menu, et le déplacement est sauvegardé immédiatement ; avec une colonne de rang, les cartes sont également rangées à la main. Elle est tirée dans votre thème Fluent UI.

React Blazor

Opportunités ouvertes par classification

Les opportunités ouvertes des données d’échantillon de la démo, via la propre vue Open Opportunities de Dataverse : une voie pour chaque note, avec le compte de la voie et le chiffre d’affaires estimé dans son en-tête. Lanes Laisse de côté la voie des opportunités sans classification. La démo du Kanban Board montre le même tableau avec les coups, les vues, les filtres et les vues sauvegardées.

Exemple de réaction Exemple de Blazor React TypeScript Razor
Chaud 15
Est. revenus · Somme
8 575 220 $
Client potentiel
Barton, Koepp and Cronin
Date de clôture de la mise
25/11/2026
Est. revenus
$130 656,70
Contact
Boris Price
Probabilité
66
Email
Date de clôture de la mise
07/12/2026
Est. revenus
$1 370 311,27
Probabilité
79
Email
Client potentiel
Sawayn - Kshlerin
Date de clôture de la mise
18/12/2026
Est. revenus
$482 660,34
Probabilité
68
Email
Client potentiel
Lubowitz - Considine
Date de clôture de la mise
04/01/2027
Est. revenus
$549 409,37
Probabilité
66
Email
Date de clôture de la mise
12/01/2027
Est. revenus
$1 056 303,32
Probabilité
71
Email
Client potentiel
Metz, Barrows and Nicolas
Date de clôture de la mise
25/01/2027
Est. revenus
$125 977,18
Probabilité
63
Email
Client potentiel
Considine Inc
Date de clôture de la mise
08/02/2027
Est. revenus
$390 063,19
Probabilité
60
Email
Client potentiel
Kemmer LLC
Date de clôture de la mise
22/02/2027
Est. revenus
$572 745,67
Contact
Mateo Hammes
Compte
Kemmer LLC
Probabilité
86
Email
Date de clôture de la mise
12/03/2027
Est. revenus
$206 661,20
Probabilité
75
Email
Date de clôture de la mise
10/05/2027
Est. revenus
$1 150 358,11
Contact
Laurel Ferry
Probabilité
63
Email
Client potentiel
Ebert, Marks and Tillman
Date de clôture de la mise
25/05/2027
Est. revenus
$415 395,06
Probabilité
66
Email
Date de clôture de la mise
04/08/2027
Est. revenus
$289 844,16
Probabilité
83
Email
Date de clôture de la mise
23/08/2027
Est. revenus
$691 221,38
Contact
Mason Fay
Probabilité
65
Email
Client potentiel
Schmeler and Sons
Date de clôture de la mise
03/03/2028
Est. revenus
$710 120,48
Contact
Yvette Kutch
Probabilité
70
Email
Client potentiel
Zulauf - Hermiston
Date de clôture de la mise
07/04/2028
Est. revenus
$433 492,70
Contact
Kip Emard
Probabilité
82
Email
Chaud 27
Est. revenus · Somme
17 938 956 $
Client potentiel
Durgan and Sons
Date de clôture de la mise
30/11/2026
Est. revenus
$1 011 637,54
Contact
Connor Marks
Probabilité
40
Email
Date de clôture de la mise
30/11/2026
Est. revenus
$435 072,03
Contact
Skyla Huels
Probabilité
36
Email
Client potentiel
Cremin - Hodkiewicz
Date de clôture de la mise
03/12/2026
Est. revenus
$148 163,91
Probabilité
33
Email
Client potentiel
Hickle Group
Date de clôture de la mise
07/12/2026
Est. revenus
$737 788,26
Contact
Derick Hayes
Probabilité
34
Email
Date de clôture de la mise
01/01/2027
Est. revenus
$735 737,57
Contact
Lucio Kunde
Probabilité
47
Email
Client potentiel
Marks - Dickinson
Date de clôture de la mise
05/01/2027
Est. revenus
$39 194,35
Probabilité
43
Email
Client potentiel
Mosciski - Crist
Date de clôture de la mise
11/01/2027
Est. revenus
$771 992,39
Probabilité
46
Email
Date de clôture de la mise
22/01/2027
Est. revenus
$1 156 824,28
Probabilité
63
Email
Client potentiel
Boyle, Zulauf and Lakin
Date de clôture de la mise
25/01/2027
Est. revenus
$71 261,52
Contact
Newton Towne
Probabilité
59
Email
Date de clôture de la mise
27/01/2027
Est. revenus
$984 770,91
Probabilité
44
Email
Date de clôture de la mise
18/02/2027
Est. revenus
$119 603,87
Probabilité
60
Email
Client potentiel
Pollich - Kling
Date de clôture de la mise
18/02/2027
Est. revenus
$175 582,97
Probabilité
41
Email
Client potentiel
Wiza, Bradtke and Hintz
Date de clôture de la mise
22/02/2027
Est. revenus
$1 235 451,27
Probabilité
56
Email
Date de clôture de la mise
24/02/2027
Est. revenus
$1 190 737,60
Contact
Skyla Huels
Probabilité
57
Email
Client potentiel
Schmeler and Sons
Date de clôture de la mise
01/03/2027
Est. revenus
$227 834,34
Contact
Yvette Kutch
Probabilité
58
Email
Client potentiel
Dietrich and Sons
Date de clôture de la mise
08/03/2027
Est. revenus
$819 872,67
Probabilité
54
Email
Client potentiel
Lang LLC
Date de clôture de la mise
09/03/2027
Est. revenus
$829 816,90
Compte
Lang LLC
Probabilité
67
Email
Client potentiel
Raynor - Lakin
Date de clôture de la mise
15/03/2027
Est. revenus
$307 419,81
Probabilité
61
Email
Client potentiel
Lehner - Harvey
Date de clôture de la mise
22/03/2027
Est. revenus
$410 838,91
Probabilité
50
Email
Date de clôture de la mise
01/04/2027
Est. revenus
$446 204,78
Probabilité
32
Email
Chargez plus
Froid 49
Est. revenus · Somme
31 899 104 $
Client potentiel
Dietrich and Sons
Date de clôture de la mise
01/05/2026
Est. revenus
$1 385 065,89
Contact
Heath Kunde
Probabilité
39
Email
Client potentiel
Brekke LLC
Date de clôture de la mise
16/06/2026
Est. revenus
$107 756,58
Contact
Jayne Johns
Compte
Brekke LLC
Probabilité
31
Email
Client potentiel
Kunde - Herman
Date de clôture de la mise
03/08/2026
Est. revenus
$636 288,55
Contact
Moses Wolff
Probabilité
39
Email
Client potentiel
Weber - Reichert
Date de clôture de la mise
28/09/2026
Est. revenus
$1 122 798,39
Contact
Hailee Hyatt
Probabilité
31
Email
Client potentiel
Konopelski - Okuneva
Date de clôture de la mise
14/10/2026
Est. revenus
$217 858,35
Probabilité
22
Email
Date de clôture de la mise
09/11/2026
Est. revenus
$1 018 696,47
Probabilité
22
Email
Client potentiel
Terry, Harvey and Simonis
Date de clôture de la mise
18/11/2026
Est. revenus
$337 530,84
Probabilité
27
Email
Client potentiel
Huel - Kerluke
Date de clôture de la mise
19/11/2026
Est. revenus
$1 317 474,26
Contact
Nelda Wiza
Probabilité
24
Email
Client potentiel
Prosacco, Crist and Lowe
Date de clôture de la mise
01/12/2026
Est. revenus
$513 370,29
Probabilité
29
Email
Client potentiel
Stanton - Jacobi
Date de clôture de la mise
03/12/2026
Est. revenus
$172 312,41
Contact
Noelia Doyle
Probabilité
15
Email
Client potentiel
Mohr and Sons
Date de clôture de la mise
04/12/2026
Est. revenus
$793 132,09
Contact
Wendell Haag
Probabilité
21
Email
Client potentiel
Hyatt - Toy
Date de clôture de la mise
07/12/2026
Est. revenus
$70 277,23
Contact
Aileen Walsh
Probabilité
26
Email
Date de clôture de la mise
14/12/2026
Est. revenus
$600 667,70
Contact
Carmine Mraz
Probabilité
33
Email
Client potentiel
Miller LLC
Date de clôture de la mise
30/12/2026
Est. revenus
$728 837,15
Contact
Nick Block
Compte
Miller LLC
Probabilité
15
Email
Date de clôture de la mise
06/01/2027
Est. revenus
$460 649,79
Probabilité
39
Email
Date de clôture de la mise
14/01/2027
Est. revenus
$1 313 333,75
Contact
Thelma Yost
Probabilité
27
Email
Client potentiel
Metz LLC
Date de clôture de la mise
18/01/2027
Est. revenus
$639 662,46
Compte
Metz LLC
Probabilité
22
Email
Client potentiel
West Group
Date de clôture de la mise
19/01/2027
Est. revenus
$556 780,20
Compte
West Group
Probabilité
23
Email
Date de clôture de la mise
25/01/2027
Est. revenus
$401 400,71
Probabilité
34
Email
Client potentiel
Boyer - Schaefer
Date de clôture de la mise
05/02/2027
Est. revenus
$363 037,14
Contact
Jena Stamm
Probabilité
30
Email
Chargez plus

Voies

LaneColumn (Réagir : laneColumn) nomme la colonne de la table de la vue dont proviennent les voies. Un choix donne une voie pour chacune de ses options, une raison de statut pour chaque raison, une colonne Oui/Non, une pour chacune de ses deux valeurs, une recherche pour chaque enregistrement nommé, et une date des voies où elle tombe, comme le décrit les lanes de date ci-dessous. Toute autre colonne affiche un message à la place du tableau. Les voies suivent l’ordre de Dataverse et laissent d’autres options cachées, et la couleur d’une option apparaît sous forme de point à côté du nom de sa voie. Une colonne qu’un enregistrement peut laisser vide ajoute une dernière voie, (Aucune valeur), pour les cartes sans valeur.

Lanes (Réagir : lanes) choisit quelles voies sont affichées, et dans quel ordre, par clé : la valeur d’une option, 1 et 0 pour Oui et Non, l’identifiant d’un enregistrement, ou une clé vide pour la voie sans valeur. Les voies d’une recherche sont les enregistrements nommés par les cartes de la vue, lues dans une requête groupée ; nomme-les dans LookupLanes (Réagir : lookupLanes) à la place pour les fixer ainsi que leur ordre, une voie sans cartes incluses.

React Blazor

Une voie sans cartes est affichée, donc une carte peut y être déposée. Réglez ShowEmptyLanes (Réagir : showEmptyLanes) pour false la cacher une fois son nombre connu. Les utilisateurs peuvent réduire une voie à une bande étroite de son nom et compter avec le bouton de son en-tête, et masquer les lanes dans le menu Filtre de la barre d’outils, qui les liste sous Afficher.

React Blazor

Voies de rendez-vous

Une colonne de date indique les voies de la date de sa tombée, comptées en jours du fuseau horaire de l’utilisateur, la semaine commençant le premier jour de leur langue, et calculées à nouveau à chaque lecture de ses voies par le tableau. Sans nom, elles sont en retard, Aujourd’hui, Demain, Cette semaine — du sur-demain jusqu’à la fin de la semaine, donc vides vers la fin de la semaine — La semaine suivante, Plus tard et Pas de date.

DateLanes(Réagir : dateLanes) nomme les voies à la place, dans l’ordre des dates. Un préréglage établit une voie à partir de la date actuelle : Yesterday, Today et Tomorrow; LastWeek, ThisWeek et NextWeek; ThisMonth LastMonth; et NextMonth; les trimestres et années du calendrier, tels que ThisCalendarQuarter et NextCalendarYear, et les fiscaux, tels que ThisFiscalQuarter et LastFiscalYear, qui suivent l’exercice fiscal de l’organisation tel que Dataverse le conserve ; Overdue, avant aujourd’hui ; Earlier et Later, qui prennent tout ce qui tombe avant et après les voies autour d’eux ; et NoDate. Une voie à vous contient les jours exacts, ou les jours comptés à partir des périodes d’aujourd’hui, sous un titre à part : Between, Before et Starting (Réagir : between, before et starting). Un préréglage prend aussi un titre propre. Essayez-le sur la démo des dates de clôture.

Chaque carte tombe dans une voie, car une voie ne commence pas avant l’endroit où la précédente se termine : listée après ThisWeek, ThisMonth tient le reste du mois, et une voie que c’est déjà couverte par celles d’avant montre vide et ne prend aucune carte. Une date qu’aucune voie ne tient — entre deux voies de jours exacts — met sa carte sur aucune, donc commencer avec Earlier et terminer avec Later pour garder toutes les cartes.

React Blazor

Une carte déplacée vers une autre voie de date reçoit le premier jour de cette voie, en gardant son heure — une voie en retard aujourd’hui aussi, ce qui lui donne une date passée — et déplacée à Sans date, elle perd sa date. Une voie sans premier jour, comme En retard, une première Avant ou une voie vide, ne prend aucune carte. Placez DateLaneDrop (Réaction : dateLaneDrop) à None et les voies ne prennent aucune carte les unes des autres : elles n’apparaissent que lorsque les cartes tombent.

DateLaneOrder (Réaction : dateLaneOrder) ordonne les cartes d’une voie de date. Rank , par défaut, les ordonne par colonne de rang, comme toutes les autres lanes : une carte déplacée dans sa voie change uniquement de rang. Date les ordonne par date, sans colonne de rang : une carte déposée en dessous d’une autre prend le jour de cette carte, gardant son propre temps, et une carte déposée en haut prend le premier jour de la lane ; les cartes du même jour restent dans l’ordre de leurs temps. Essayez lors de la démo des dates d’échéance.

React Blazor

Comptages et totaux

L’en-tête de chaque voie indique combien de cartes elle contient — 5000+ au-delà de 5 000 — et les totaux nommés dans LaneAggregates (Réagir : laneAggregates: : la somme, la moyenne, le plus petit ou la majeure partie d’un nombre, de la colonne argent ou de la date, ou le compte de n’importe quelle colonne, sur chaque carte de la voie, pas seulement celles chargées. LaneAggregateFormats (Réagir : laneAggregateFormats) donne un format aux chiffres de chaque colonne, tel que C0 ou N1. Voici les totaux avec lesquels le plateau commence : le bouton Totaux permet aux utilisateurs de choisir leurs propres colonnes affichées par les cartes, et une vue enregistrée les conserve. Les comptes et totaux sont lus à nouveau après chaque coup sauvegardé par le plateau.

React Blazor

Limites des voies

LaneLimits (Réagir : laneLimits) donne aux voies, par clé, le plus grand nombre de cartes qu’elles devraient posséder. L’en-tête d’une voie limitée affiche son compte par rapport à sa limite, comme 7/5, marqué une fois le compte passé. Le compte correspond à toutes les cartes de la voie, quelle que l’utilisateur recherche ou filtre. Une limite ne prévient que sauf si EnforceLaneLimits (Réagir : enforceLaneLimits) est défini : alors une voie pleine ne prend aucune carte d’une autre, n’est pas proposée sous Déplacer à, et n’a pas de bouton Ajouter. C’est la règle du plateau, pas celle du serveur : maintenir une limite pour chaque façon dont un enregistrement est sauvegardé avec un intercepteur.

React Blazor

Cartes

Une carte affiche la première colonne de la vue comme titre et les autres colonnes de la vue sous leurs titres, comme le font les cartes d’une grille, en omettant la colonne de la voie et la colonne de rang. CardImageColumn (Réagir : cardImageColumn) ajoute une colonne image en avatar à côté du titre. Chaque voie charge PageSize (Réagir : pageSize) cartes à la fois, 20 par défaut, avec Charger plus à son bas. Depuis les Paramètres, les utilisateurs changent les champs affichés par les cartes, la façon dont les cartes d’une voie sont triées et combien chaque voie charge.

Tirez les cartes à votre manière avec CardTemplate (Réagir : cardRenderer). On lui remet l’enregistrement et la voie de chaque carte ; Field , Label et DisplayValue (Réagir : field, label et displayValue) affichent une colonne comme la carte par défaut, et OpenAsync et MoveToAsync (Réagir : open et moveTo) ouvrent l’enregistrement et déplacent la carte, où CanOpen et CanMove disent qu’ils le peuvent. Un clic sur la carte ouvre toujours son enregistrement, et son menu Déplacer vers se trouve à côté de votre contenu. Les colonnes qu’un modèle affiche doivent être celles de la vue, donc le tableau les lise avec chaque carte.

React Blazor

Des tâches, dessinées à votre manière

Les tâches de la démo sont utilisées via la vue Toutes les tâches de Dataverse, une voie pour chaque raison de statut de Non Commencée à Annulée, cinq cartes à la fois. A CardTemplate (Réagir : cardRenderer) montre le sujet de chaque tâche, de quoi il s’agit, quand elle est due et sa priorité, les plus hautes en rouge.

Exemple de réaction Exemple de Blazor React TypeScript Razor CSS
Pas commencé 155
Book the on-site visit
Ebert, Marks and Tillman
Book the on-site visit
Stanton - Jacobi
Book the on-site visit
Rippin, Connelly and Hills
Book the on-site visit
Altenwerth, D'Amore and Mante
Book the on-site visit
Sawayn - Kessler
Chargez plus
En cours 42
Book the on-site visit
Marks - Dickinson
Book the on-site visit
Luettgen, Goldner and Rowe
Chase the signed contract
Schaden, Cronin and Daniel
Chase the signed contract
Dietrich and Sons
Chase the signed contract
Lind - Parisian
Chargez plus
Attendre quelqu’un d’autre 28
Book the on-site visit
Schmeler and Sons
Book the on-site visit
Schmeler and Sons
Book the on-site visit
Botsford - Baumbach
Book the on-site visit
Schmeler and Sons
Chase the signed contract
Boyer - Schaefer
Chargez plus
Reporté 18
Book the on-site visit
Adams - Torphy
Book the on-site visit
Sanford, Grimes and Satterfield
Chase the signed contract
Cole, Tillman and Langworth
Chase the signed contract
Boyle, Zulauf and Lakin
Chase the signed contract
Waelchi, Murazik and Considine
Chargez plus
Achèvement 57
Book the on-site visit
Waelchi, Murazik and Considine
Book the on-site visit
Bartoletti LLC
Book the on-site visit
Cole, Tillman and Langworth
Book the on-site visit
Effertz Group
Book the on-site visit
O'Hara, Streich and Conroy
Chargez plus
Annulé 16
Book the on-site visit
Kemmer LLC
Confirm the training dates
Schmeler and Sons
Draft the statement of work
Raynor - Lakin
Draft the statement of work
Willms, Heathcote and Veum
Draft the statement of work
Rempel - Parisian
Chargez plus

Lorsque la table du tableau a une page enregistrée pour ses enregistrements (voir Pages d’enregistrement) et que le tableau n’a pas Form de (Réagir : form), le titre d’une carte y est lié, et ouvrir la carte y mène ; ShowRecordLinks (Réagir : showRecordLinks) désactive ce message. Sinon, cliquer sur une carte ouvre son enregistrement dans un dialogue au centre ou, avec FormLocation (Réagir : formLocation), dans un panneau latéral à gauche ou à droite. La forme est KanbanDefaultForm — les colonnes de la vue de la table du tableau et de la colonne de la voie, chacune avec l’éditeur que prend son type — ou votre propre composant d’éditeurs dans Form (Réagir : form). L’enregistrement est lu comme une page d’enregistrement le lit, via le même accès à la table et la sécurité des colonnes, et ne peut être modifié que dans un Editable tableau, par un utilisateur qui peut le modifier.

Cartes à déplacer

Dans un Editable plateau (Réagir : editable), les utilisateurs déplacent une carte vers une autre voie en la faisant glisser, depuis le clavier ou via le menu Déplacer vers le menu sur la carte. La carte bouge en même temps, et le plateau sauvegarde ce qui a changé : la colonne de la voie — pour une raison de statut, la seule raison, car le serveur déplace l’état du record avec elle — et le rang de la carte, où le plateau en conserve une. Une sauvegarde qui échoue remet la carte en place et le dit.

Une carte ne bouge que là où l’utilisateur peut la modifier : Écrire sur son enregistrement, via l’accès à la table du portail, et sur sa colonne de voie, qui doit être une option qu’une mise à jour peut activer et que la sécurité de la colonne ne retient pas. Mettre les cartes dans l’ordre nécessite aussi Write sur la colonne de rang. Une carte que l’utilisateur ne peut pas déplacer reste à sa place, sans menu Déplacer vers le menu.

Les lignes de raison de statut suivent leurs états, et les changements d’état autorisés par la table, avec lesquels le serveur s’enregistre AddStateTransitions (voir RecordContext). Les opportunités, cas, citations et ordres les ont par défaut : une carte n’est pas prise par une voie que son enregistrement ne peut pas atteindre depuis la sienne, et Déplacer vers ne liste que les voies qu’elle peut. Un changement de statut effectué par une mise à jour — une opportunité rouverte, un cas annulé ou réactivé, un devis activé, une commande soumise — demande à l’utilisateur de le confirmer en premier, et une action faite par Dataverse ouvre la boîte de dialogue de fermeture, comme le décrit les enregistrements de clôture ci-dessous. Les cartes d’un statut fermé ne sont pas placées dans un autre ordre entre elles. Une table sans transitions se déplace librement : une tâche déplacée à Terminée est terminée, puis reculée, ouverte.

React Blazor

Ajout de cartes

L’en-tête de chaque voie dans un Editable tableau possède un bouton Ajouter qui ouvre un nouvel enregistrement déjà présent dans cette voie, sous la forme du tableau : celui de Form la page (Réagir : form) ou KanbanDefaultForm. Il ne s’affiche qu’aux utilisateurs qui peuvent créer les enregistrements de la table et définir sa colonne de lane, et jamais dans une voie d’enregistrements fermés, car un enregistrement est créé ouvert. Une fois enregistrée, la carte apparaît en haut de sa voie. Désactivez-la avec AllowNew (Réagir : allowNew). Handle PrepareNewRecord (Réagir : prepareNewRecord) pour donner plus de valeurs au nouvel enregistrement avant l’ouverture de son formulaire : il reçoit l’enregistrement, la valeur de la voie déjà présente, et la voie. Un bouton de barre d’outils peut aussi ajouter une carte : CanCreate et sur (KanbanBoardContextReact : canCreate et newCard) indiquer si une voie prend une nouvelle carte et ouvre sa forme — sans qu’aucune voie ne soit nommée, dans la première qui NewAsync en prend une.

React Blazor
React Blazor

Records de clôture

Sur un tableau par raison de statut, une carte déposée dans une voie que Dataverse ferme les enregistrements avec une action propre — Gagné ou Perdu d’une opportunité, Résolu d’un cas, Gagné ou Fermé d’un devis, Accompli ou Annulé d’une commande — ouvre un dialogue pour la raison de statut, la voie de départ, et ce que la clôture enregistre : le revenu réel et la date de clôture d’une opportunité gagnée ; la date de clôture d’une voie perdue, et le concurrent auquel elle a été perdue où l’utilisateur peut choisir des concurrents ; la résolution et le temps facturable d’un cas ; la date de clôture d’un devis ou d’une commande ; et une description. Confirmé, le dossier est fermé via le message propre de Dataverse, tel que WinOpportunity ou CloseIncident; annulé, la carte revient. Une opportunité est ramenée dans une voie ouverte, une opportunité est rouverte et un cas réactivé une fois que l’utilisateur a confirmé. Essayez sur la démo Pipeline. Le même dialogue se trouve derrière les boutons de fermeture sur le formulaire d’un enregistrement, comme WinOpportunityButton: voir RecordContext.

Une clôture est jugée comme un changement de statut de l’enregistrement : l’utilisateur doit être autorisé à modifier l’enregistrement et ses colonnes de statut, et à pointer vers le concurrent qu’il nomme. Dataverse enregistre la clôture sous l’enregistrement comme une activité à part entière (opportunityclose, incidentresolution, quoteclose, orderclose), qui ne nécessite pas d’accès à la table de votre part. L’utilisateur de l’application du portail a besoin d’AppendTo sur la table de l’enregistrement, Créer et Annexe sur les activités, et pour une opportunité AppendTo sur les concurrents : voir Dataverse Connection.

React Blazor

Mettre les cartes dans l’ordre

Nommer un RankColumn (Réagir : rankColumn) et les utilisateurs classent les cartes de chaque voie par main. Une voie est triée par rang, puis par tri de la vue, et une carte déposée entre deux autres reçoit un rang entre les leurs. Généralement, ce rang est tout ce qu’un drop écrit. Les cartes sans rang trient en premier, et sont classées à tour de rôle lorsqu’une carte est déposée parmi elles ou juste en dessous ; une voie dont les rangs n’ont plus de place entre deux cartes est classée à nouveau, dans l’ordre affiché. Ces rangs sont sauvegardés avec le déplacement, lors d’une transaction. Une ligne de plus de 5 000 cartes ne peut pas être classée à la main, ni une carte là où elle serait rangée par l’utilisateur ne peut pas changer. Sans colonne de rang, une voie suit le tri de la vue, et une carte ne se déplace qu’à une autre voie.

La colonne de rang est une colonne décimale du tableau du plateau dont la portée permet de donner des nombres négatifs, puisqu’une carte tombée au-dessus de la première est classée en dessous. Sa précision détermine à quelle fréquence une ligne est classée à neuf : chaque chute entre deux moitiés fait passer la pièce entre elles, donc une colonne de dix valeurs décimales nécessite environ cinquante chutes en un endroit avant que sa voie ne soit à nouveau classée, et une de nulle part d’environ vingt points.

React Blazor

Sauvegarder soi-même

Gérer SaveChange (Réagir : onCardMove) pour sauvegarder un coup à votre façon, à la place du plateau : via un service à vous, après avoir demandé à l’utilisateur, ou pas du tout. On lui donne KanbanCardMoveun : les cartes Recordde la carte, les voies où elle est venue From et Torepart, il est Index là et son Rank, le Update plateau écrirait, et le OtherUpdates qui appartient à la même transaction, écrit après — les rangs des autres cartes, ou, pour une carte quittant une voie fermée, son propre rang une fois que son statut l’a rouverte — et, pour une carte déposée dans une voie qui la ferme, le Close (Réaction : close) confirmé par l’utilisateur, à envoyer après lui. Revenir true pour garder la carte là où elle a été déposée, ou false pour la remettre. Le tableau ne lit plus rien après un coup qu’il n’a pas sauvegardé, donc une page peut garder un mouvement uniquement sur la page.

React Blazor

Clavier, lecteurs tactiles et d’écran

Chaque carte qui peut se déplacer possède un ... bouton avec un menu Aller vers les voies où elle peut aller, qui fonctionne de la même manière depuis le clavier, par tactile et avec un lecteur d’écran. Une carte peut aussi être déplacée directement depuis le clavier : la focaliser, appuyer sur Espace pour la ramasser, les flèches pour la transporter vers une autre voie ou un autre endroit dans son propre cas, et encore Espace pour la poser. Sur un écran tactile, une carte est traînée par sa prise, donc les voies défilent toujours sous un doigt. Les lecteurs d’écran entendent chaque mouvement — la carte déplacée vers la voie — et un mouvement qui échoue.

Barre d’outils

La barre d’outils est disposée comme une grille : le sélecteur de vue à gauche — ou le Title (Réagir : title), lorsqu’il n’y a qu’une seule vue — et à droite vos propres contrôles, Totains, la boîte de recherche, le Filtre, Rafraîchir et les Paramètres. Ajoutez vos contrôles avec ToolbarItems (Réagir : les enfants du plateau). Un joueur reçoit le tableau lorsqu’on KanbanBoardButton clique : son tableau, la vue qu’il affiche, ses voies dans leur ordre, et RefreshAsync (Réagir : refresh) pour relire chaque voie.

React Blazor

Vues, recherches et filtres

Un tableau affiche les enregistrements d’une vue — l’une de Dataverse ou celle définie par la page — et sa table correspond à celle de la vue. DefaultViewId (Réagir : defaultViewId) est la vue sur laquelle elle s’ouvre, et ViewIds (Réagir : viewIds) les autres que propose le sélectionneur de vues, de la même table. La boîte de recherche trouve les cartes car la recherche d’une grille trouve des lignes : à partir du début de la valeur d’une colonne de recherche, ou n’importe où après un début *de . Elle regarde dans les colonnes affichées par les cartes, les nomme dans son infobulle, et marque les correspondances sur les cartes. Désactivez-la avec AllowSearch (Réagir : allowSearch).

Avec AllowFiltering (Réagir : allowFiltering), le menu Filtre de la barre d’outils propose des filtres Modifier, le bouton Filtre d’une grille s’ouvre, dont les filtres remplacent ceux de la vue jusqu’à ce que l’utilisateur choisisse une autre vue. Il est désactivé par défaut, car l’utilisateur peut retirer tous les filtres de la vue.

Avec AllowSavedViews (Réagir : allowSavedViews), un utilisateur connecté peut enregistrer le plateau tel qu’il l’a organisé — la vue avec ses filtres, les champs et le tri des cartes, les totaux des couloirs, les cartes que chaque voie charge, et les voies repliées ou cachées — en tant que vue à part entière, et choisir sa vue par défaut et masquer celles qu’il n’utilise pas, depuis le menu Filtre. Sans SavedViewsKey (Réagir : savedViewsKey), un plateau partage ses vues avec les grilles, calendriers et tableaux de son tableau qui n’en ont pas, chacun conservant sa propre configuration. La façon dont les vues sont sauvegardés, modifiées et partagées se trouve sur la page Vues Sauvegardées .

React Blazor

Une page peut définir ses propres vues en code avec CustomViewDefinitions (Réagir : customViewDefinitions), les définitions de vues de la grille. Elles sont proposées dans le sélecteur à côté ViewIds sans y être listées, DefaultViewId on peut en nommer une, et un plateau peut les avoir seules. Chacune est lue par son propre FetchXML, dans l’accès de table de l’utilisateur, et dispose le plateau comme indiqué : ce PageSize sont les cartes qu’une voie charge, celles d’une Hidden colonne et DisplayLabel cacher ou renommer son champ de cartes, et ce Aggregates sont les totaux des voies. Construisez la liste une fois, dans un champ : une nouvelle liste relance le plateau.

React Blazor

Conserver sa place dans l’URL

Nommer un paramètre de requête dans PersistedStateQueryParameter (React : persistedStateQueryParameter), et le tableau garde la vue choisie et les voies s’y sont effondrées, donc un rechargement ou un lien partagé l’ouvre comme il a été laissé. Ce sur quoi il s’ouvrirait de toute façon est laissé de côté. La recherche est aussi gardée avec IncludeSearchInPersistedState; elle est laissée de côté par défaut, car ce que les utilisateurs recherchent peut être sensible. Chaque changement remplace l’entrée historique du navigateur, et les deux piles écrivent la même valeur, donc un lien créé sur l’un ouvre le même tableau sur l’autre.

React Blazor

Thèmes

Le plateau est dessiné avec les contrôles et jetons de design propres à Fluent UI, il suit donc votre thème, clair ou sombre, et votre couleur d’accent, et le point d’une voie prend la couleur de son option de Dataverse. Les pistes font 280 pixels de large, côte à côte, et défilent latéralement quand elles ne rentrent pas ; sur un téléphone, chacune prend la majeure partie de l’écran et s’enclenche en place. Height (Réagir : height) règle la hauteur du plateau, barre d’outils incluse — 600 pixels par défaut — et chaque voie fait défiler ses cartes à l’intérieur. Pour restyler, le plateau, ses couloirs et ses cartes portent leurs propres classes, parmi lesquelles ppp-kanban, ppp-kanban-lane, ppp-kanban-lane-header et ppp-kanban-card; Class et Style (Réagir : className et style) ajoutent les vôtres.

Réagir Blazor

KanbanBoard Classe

Paramètres

Nom
Type
Par défaut
Description
AllowFilteringbool
False
Si l’utilisateur peut modifier les filtres de la vue, depuis le menu Filtre, comme sur une grille. Off by Par défaut : l’utilisateur peut supprimer tous les filtres de la vue.
AllowNewbool
True
Si chaque voie d’un KanbanBoard.Editable plateau offre une nouvelle carte, avec un bouton Ajouter dans En-tête : Un que l’utilisateur peut créer, dans la valeur de la voie — aucun dans une voie de cartes fermées, comme un L’enregistrement est créé ouvert. Par défaut .true
AllowSavedViewsbool
False
Laissez les utilisateurs connectés sauvegarder le tableau tel qu’ils l’ont organisé — la vue qu’il affiche avec leur filtres, ses champs de cartes et le tri, les totaux des voies et les voies effondrées ou cachées — comme Leurs propres vues, proposées dans le sélecteur de vues à côté de celles de la page, et choisissent leur vue par défaut Et masquer les vues qu’ils n’utilisent pas. Désactivé par défaut. Il faut la solution Power Portals Pro Core des tableaux en vue sauvegardée ; un utilisateur interne a également besoin des vues sauvegardées Power Portals Pro Rôle de sécurité.
AllowSearchbool
True
Si la barre d’outils possède une barre de recherche. Par défaut, .true
CardImageColumnstring?
Une colonne image que chaque carte par défaut affiche comme un avatar à côté de son titre, comme le font les cartes d’une grille.
CardTemplateRenderFragment<KanbanCardContext>?
Le contenu de chaque carte, à la place de la carte par défaut : son titre — la première colonne de la vue — et les autres chroniques de The View sous leurs titres.
CustomViewDefinitionsList<ViewDefinition>?
Vues que la page définit — les s de la Models.ViewDefinitiongrille — proposées dans le sélecteur à côté KanbanBoard.ViewIds sans y être mentionné ; KanbanBoard.DefaultViewId je peux en nommer un. A La carte peut ne contenir que ces cartes. Chacune est lue par son propre FetchXML, et dispose la carte comme indiqué (Models.ViewDefinition)) : les cartes qu’une voie lit à la fois, la carte de ses colonnes champs cachés ou titrés, et les totaux des voies. Un autre tableau que celui du plateau est à gauche fini. Construis la liste une fois — dans un champ, pas en ligne dans le balisage — au moment où une nouvelle liste commence le À nouveau à bord.
DateLaneDropKanbanDateLaneDrop
ChangeDate
Ce qu’une carte tombée dans une autre voie de rendez-vous fait, où le KanbanBoard.LaneColumn est un rendez-vous : elle prend le premier jour de la voie (KanbanDateLaneDrop.ChangeDate, la valeur par défaut) — en respectant son horaire ; aucune date dans Aucune date ; aucune n’est supprimée dans En retard — ou les voies de date ne prennent pas cartes l’un de l’autre (KanbanDateLaneDrop.None). Aucun effet sur les autres voies.
DateLaneOrderKanbanDateLaneOrder
Rank
Comment les cartes des lanes de date sont ordonnées, où le KanbanBoard.LaneColumn est un rendez-vous : par le KanbanBoard.RankColumn comme les autres voies sont (KanbanDateLaneOrder.Rank, le par défaut), ou par la date elle-même (KanbanDateLaneOrder.Date) — une carte déposée en dessous un autre prend son jour, gardant son propre temps, un autre déposé en haut de la voie le premier jour, et La colonne de rang n’est pas utilisée. Aucun effet sur les autres voies.
DateLanesIReadOnlyList<KanbanDateLane>?
Les voies qu’une date KanbanBoard.LaneColumn indique, dans l’ordre des dates : des préréglages tels que KanbanDateLane.Today, KanbanDateLane.ThisMonth ou KanbanDateLane.ThisFiscalQuarter — calculé à chaque lecture du jour dans les données de l’utilisateur Fuseau horaire, la semaine de la culture et l’exercice fiscal de l’organisation — ou les voies de vos propres (DateTime,System.DateTime) et autres). Chacun commence là où la carte d’avant se termine, donc chaque carte atterrit au maximum dans une même voie ; une carte dont la date aucun hold n’est pas sur le plateau. Sans eux, le sept par défaut (KanbanDateLane.Defaults) : En retard, aujourd’hui, demain, cette semaine, la semaine prochaine, plus tard et Pas de date. Une voie est nommée par son KanbanDateLane.Title, sinon le nom d’un préréglage dans la langue de l’utilisateur, sinon sa clé. Une nouvelle liste des mêmes voies — une écrite en ligne dans le le balisage — ne redémarre pas le tableau ; les autres voies le font.
DefaultViewIdGuid?
La vue sur laquelle s’ouvre le plateau. La table du tableau est celle de la vue.
Editablebool
False
Si les cartes peuvent être déplacées. Une carte se déplace lorsque l’utilisateur peut modifier son enregistrement et sa voie et — sur les voies d’une raison de statut — les transitions d’état de la table permettent le déplacement ()Models.KanbanLane) : une lane n’offre que les coups qu’ils effectuent, et un drop ils le refus revient. Une carte déposée dans une voie où ses transitions le referment — une opportunité est gagnée ou Perdu, une affaire résolue, une soumission ou une commande fermée, une commande est livrée ou annulée — est clôturée à travers le message même de Dataverse : le conseil demande comment — la raison, la voie à l’origine, et Ce que le close enregistre. Tout autre changement d’État qu’ils font — la réouverture d’une opportunité, Annuler un dossier, activer un devis — doit être confirmé en premier. Désactivé par défaut.
EnforceLaneLimitsbool
False
Que le plateau reste à KanbanBoard.LaneLimits: une voie pleine ne prend aucune carte d’une autre — un drop là revient, et Déplacer à ne l’oublie — et n’offre pas de nouvelle carte. Les cartes bougent toujours à l’intérieur. Désactivé par défaut : une voie au-delà de sa limite n’est balisée que marquée.
FormType?
La forme dans laquelle s’ouvre l’enregistrement d’une carte : un composant des éditeurs, alors que prend le dialogue d’enregistrement d’une grille. Sans cela, une carte ouvre la page de son enregistrement où son tableau contient une (KanbanBoard.ShowRecordLinks), Else KanbanDefaultForm: les colonnes de la vue et la colonne de la voie.
FormLocationDialogLocation
Center
Là où l’enregistrement d’une carte s’ouvre : centré, ou dans un panneau latéral à gauche ou à droite. Par défaut est centré.
Heightstring
600px
Hauteur de toute la carte, barre d’outils incluse, comme n’importe quelle longueur CSS. Par défaut à 600px.
IncludeSearchInPersistedStatebool
False
Que la recherche soit maintenue avec le reste de l’État. N’a aucun effet sans KanbanBoard.PersistedStateQueryParameter.
LaneAggregateFormatsIReadOnlyDictionary<string, string>?
Le format des KanbanBoard.LaneAggregates totaux de chaque colonne est indiqué en (« N0 »), par son nom.
LaneAggregatesIReadOnlyDictionary<string, QueryAggregate>?
Les totaux que l’en-tête de chaque voie indique au départ — une somme, une moyenne, le minimum, le plus ou un compte d’une colonne, par son nom. L’utilisateur les modifie avec le bouton Totaux, et une sauvegarde La vue les retient.
LaneColumn*string
La colonne d’où proviennent les voies : un choix, une raison de statut, un Oui/Non, une recherche ou une colonne de date du tableau du tableau. Tout autre montre un message à la place du tableau. Les voies d’une colonne de date sont quand elle tombe, dans les jours du fuseau horaire de l’utilisateur : En retard, Aujourd’hui, Demain, Cette semaine, La semaine prochaine, Plus tard et Pas de date, ni des pages KanbanBoard.DateLanes (KanbanBoard.DateLaneDrop, KanbanBoard.DateLaneOrder).
LaneLimitsIReadOnlyDictionary<string, int>?
Le plus grand nombre de cartes que chaque voie devrait contenir est : KanbanLane.Keyl’en-tête d’une voie limitée indique son compte par rapport à sa limite (« 4 / 5 »), et la marque lorsque la voie en contient plus. Le Le compte correspond à toute la voie, quelle que soit la recherche et les filtres de l’utilisateur. Une voie non nommée Il n’y a pas de limites.
LanesIEnumerable<string>?
Les voies du plateau affichent, et dans quel ordre, par KanbanLane.Key: une option valeur (« 1 »), les « 1 » et « 0 » de Oui/Non, l’ID d’un enregistrement, la clé d’une zone de date (KanbanDateLane.Key : « en retard »,« aujourd’hui », ...), ou une clé vide pour le Voie de cartes sans valeur. Chaque voie, dans l’ordre de Dataverse, lorsqu’elle n’est pas donnée. Pour les lanes de date Il choisit parmi les KanbanBoard.DateLanes, dont les jours restent tels que ceux qui les définissent.
LookupLanesIEnumerable<LookupValue>?
Les voies d’une recherche : une pour chaque enregistrement, dans l’ordre donné. Sans celles-ci, le tableau affiche une voie pour chaque enregistrement, le nom de la carte de la vue.
PageSizeint
20
Les cartes qu’une voie lit à la fois ; les suivantes viennent avec son Chargement plus. Par défaut, c’est 20.
PersistedStateQueryParameterstring?
Le nom d’un paramètre de requête URL pour conserver l’état de la carte — la vue choisie, les voies collapse et (avec KanbanBoard.IncludeSearchInPersistedState) la recherche — donc un rechargement ou un Link l’ouvre là où il était resté. Chaque changement remplace l’entrée historique du navigateur.
PrepareNewRecordFunc<KanbanNewRecord, Task>?
Prépare l’enregistrement d’une nouvelle carte avant l’ouverture de sa forme — depuis le bouton Ajouter d’une voie ou KanbanBoardContext.NewAsync(PowerPortalsPro.Common.Models.KanbanLane) — une fois que le plateau lui a attribué la valeur de la voie : le L’hôte définit les valeurs par défaut via l’indexeur de l’enregistrement (carte. Enregistrement['column'] = valeur), et chaque valeur qu’il définit est sauvegardée avec l’enregistrement. Le formulaire ne s’ouvre pas s’il est lancé, et l’erreur est affiché comme un Creation Is échoué.
RankColumnstring?
Une colonne décimale où le plateau garde l’ordre des cartes, à la main : chaque voie est triée par celle-ci, et une carte lâchée entre deux autres reçoit un rang entre les leurs. Sans celle-ci, les cartes suivent La vue est un peu plus simple, et une carte ne se déplace qu’à une autre voie.
SaveChangeFunc<KanbanCardMove, Task<bool>>?
Sauvegarde un coup à la place du plateau ; le retour false remet la carte en arrière, comme lorsque le jet de sauvegarde est refusé. Sans cela, le plateau sauvegarde lui-même le coup. Un coup qui ferme le La carte est donnée une fois que l’utilisateur a expliqué comment, avec la demande d’envoi KanbanCardMove.Close; un état qui modifie un état que gouvernent les transitions de la table, une fois que l’utilisateur l’a confirmé.
SavedViewsKeystring?
Nomme ce tableau parmi les commandes de sa table, donc les vues enregistrées dessus et celles de l’utilisateur Les vues par défaut et cachées sont les siennes. Sans celle-ci, le conseil partage ses vues avec chaque grille, Calendrier et tableau de la table qui n’en a pas. Lettres, chiffres, -, _ et ..
ShowEmptyLanesbool
True
Indiquer si une voie sans cartes est indiquée. Par défaut à true.
ShowRecordLinksbool
True
Que les cartes renvoient à leurs pages d’enregistrements, enregistrées sur AddRecordPage, sous forme de grille les lignes et les recherches en font partie. Lorsque la table du plateau a une page et que le tableau reçoit non KanbanBoard.Form, le titre d’une carte renvoie à la page de son enregistrement et l’ouverture de la carte y mène ; Une recherche sur une carte renvoie à la page de son enregistrement où cette table en a une. Un tableau sans page ouvre ses cartes dans la boîte de dialogue du plateau. Une nouvelle carte est toujours créée dans la boîte de dialogue. Par défaut true.
SignInUrlstring
Account/Login
Lorsqu’un utilisateur non connecté est envoyé se connecter depuis le menu des vues sauvegardées ; il revient à cette page. En fonction de l’adresse de base de l’application. Par défaut, compte / connexion.
Titlestring?
Le titre du tableau, affiché à la place du sélecteur de vue lorsqu’il n’y a qu’une seule vue.
ToolbarItemsRenderFragment?
Des contrôles pour la barre d’outils — KanbanBoardButtons, ou tout autre balisage — avant la boîte de recherche.
ViewIdsIEnumerable<Guid>?
D’autres vues de la même table, l’utilisateur peut basculer dans le sélecteur de vue.
ViewSortViewSort
NameAscending
L’ordre des vues dans le sélecteur. Par défaut est ViewSort.NameAscending, comme dans une grille.
Nom: AllowFiltering
Type: bool
Par défaut: False
Description: Si l’utilisateur peut modifier les filtres de la vue, depuis le menu Filtre, comme sur une grille. Off by Par défaut : l’utilisateur peut supprimer tous les filtres de la vue.
Nom: AllowNew
Type: bool
Par défaut: True
Description: Si chaque voie d’un KanbanBoard.Editable plateau offre une nouvelle carte, avec un bouton Ajouter dans En-tête : Un que l’utilisateur peut créer, dans la valeur de la voie — aucun dans une voie de cartes fermées, comme un L’enregistrement est créé ouvert. Par défaut .true
Nom: AllowSavedViews
Type: bool
Par défaut: False
Description: Laissez les utilisateurs connectés sauvegarder le tableau tel qu’ils l’ont organisé — la vue qu’il affiche avec leur filtres, ses champs de cartes et le tri, les totaux des voies et les voies effondrées ou cachées — comme Leurs propres vues, proposées dans le sélecteur de vues à côté de celles de la page, et choisissent leur vue par défaut Et masquer les vues qu’ils n’utilisent pas. Désactivé par défaut. Il faut la solution Power Portals Pro Core des tableaux en vue sauvegardée ; un utilisateur interne a également besoin des vues sauvegardées Power Portals Pro Rôle de sécurité.
Nom: AllowSearch
Type: bool
Par défaut: True
Description: Si la barre d’outils possède une barre de recherche. Par défaut, .true
Nom: CardImageColumn
Type: string?
Description: Une colonne image que chaque carte par défaut affiche comme un avatar à côté de son titre, comme le font les cartes d’une grille.
Nom: CardTemplate
Type: RenderFragment<KanbanCardContext>?
Description: Le contenu de chaque carte, à la place de la carte par défaut : son titre — la première colonne de la vue — et les autres chroniques de The View sous leurs titres.
Nom: CustomViewDefinitions
Type: List<ViewDefinition>?
Description: Vues que la page définit — les s de la Models.ViewDefinitiongrille — proposées dans le sélecteur à côté KanbanBoard.ViewIds sans y être mentionné ; KanbanBoard.DefaultViewId je peux en nommer un. A La carte peut ne contenir que ces cartes. Chacune est lue par son propre FetchXML, et dispose la carte comme indiqué (Models.ViewDefinition)) : les cartes qu’une voie lit à la fois, la carte de ses colonnes champs cachés ou titrés, et les totaux des voies. Un autre tableau que celui du plateau est à gauche fini. Construis la liste une fois — dans un champ, pas en ligne dans le balisage — au moment où une nouvelle liste commence le À nouveau à bord.
Nom: DateLaneDrop
Type: KanbanDateLaneDrop
Par défaut: ChangeDate
Description: Ce qu’une carte tombée dans une autre voie de rendez-vous fait, où le KanbanBoard.LaneColumn est un rendez-vous : elle prend le premier jour de la voie (KanbanDateLaneDrop.ChangeDate, la valeur par défaut) — en respectant son horaire ; aucune date dans Aucune date ; aucune n’est supprimée dans En retard — ou les voies de date ne prennent pas cartes l’un de l’autre (KanbanDateLaneDrop.None). Aucun effet sur les autres voies.
Nom: DateLaneOrder
Type: KanbanDateLaneOrder
Par défaut: Rank
Description: Comment les cartes des lanes de date sont ordonnées, où le KanbanBoard.LaneColumn est un rendez-vous : par le KanbanBoard.RankColumn comme les autres voies sont (KanbanDateLaneOrder.Rank, le par défaut), ou par la date elle-même (KanbanDateLaneOrder.Date) — une carte déposée en dessous un autre prend son jour, gardant son propre temps, un autre déposé en haut de la voie le premier jour, et La colonne de rang n’est pas utilisée. Aucun effet sur les autres voies.
Nom: DateLanes
Type: IReadOnlyList<KanbanDateLane>?
Description: Les voies qu’une date KanbanBoard.LaneColumn indique, dans l’ordre des dates : des préréglages tels que KanbanDateLane.Today, KanbanDateLane.ThisMonth ou KanbanDateLane.ThisFiscalQuarter — calculé à chaque lecture du jour dans les données de l’utilisateur Fuseau horaire, la semaine de la culture et l’exercice fiscal de l’organisation — ou les voies de vos propres (DateTime,System.DateTime) et autres). Chacun commence là où la carte d’avant se termine, donc chaque carte atterrit au maximum dans une même voie ; une carte dont la date aucun hold n’est pas sur le plateau. Sans eux, le sept par défaut (KanbanDateLane.Defaults) : En retard, aujourd’hui, demain, cette semaine, la semaine prochaine, plus tard et Pas de date. Une voie est nommée par son KanbanDateLane.Title, sinon le nom d’un préréglage dans la langue de l’utilisateur, sinon sa clé. Une nouvelle liste des mêmes voies — une écrite en ligne dans le le balisage — ne redémarre pas le tableau ; les autres voies le font.
Nom: DefaultViewId
Type: Guid?
Description: La vue sur laquelle s’ouvre le plateau. La table du tableau est celle de la vue.
Nom: Editable
Type: bool
Par défaut: False
Description: Si les cartes peuvent être déplacées. Une carte se déplace lorsque l’utilisateur peut modifier son enregistrement et sa voie et — sur les voies d’une raison de statut — les transitions d’état de la table permettent le déplacement ()Models.KanbanLane) : une lane n’offre que les coups qu’ils effectuent, et un drop ils le refus revient. Une carte déposée dans une voie où ses transitions le referment — une opportunité est gagnée ou Perdu, une affaire résolue, une soumission ou une commande fermée, une commande est livrée ou annulée — est clôturée à travers le message même de Dataverse : le conseil demande comment — la raison, la voie à l’origine, et Ce que le close enregistre. Tout autre changement d’État qu’ils font — la réouverture d’une opportunité, Annuler un dossier, activer un devis — doit être confirmé en premier. Désactivé par défaut.
Nom: EnforceLaneLimits
Type: bool
Par défaut: False
Description: Que le plateau reste à KanbanBoard.LaneLimits: une voie pleine ne prend aucune carte d’une autre — un drop là revient, et Déplacer à ne l’oublie — et n’offre pas de nouvelle carte. Les cartes bougent toujours à l’intérieur. Désactivé par défaut : une voie au-delà de sa limite n’est balisée que marquée.
Nom: Form
Type: Type?
Description: La forme dans laquelle s’ouvre l’enregistrement d’une carte : un composant des éditeurs, alors que prend le dialogue d’enregistrement d’une grille. Sans cela, une carte ouvre la page de son enregistrement où son tableau contient une (KanbanBoard.ShowRecordLinks), Else KanbanDefaultForm: les colonnes de la vue et la colonne de la voie.
Nom: FormLocation
Type: DialogLocation
Par défaut: Center
Description: Là où l’enregistrement d’une carte s’ouvre : centré, ou dans un panneau latéral à gauche ou à droite. Par défaut est centré.
Nom: Height
Type: string
Par défaut: 600px
Description: Hauteur de toute la carte, barre d’outils incluse, comme n’importe quelle longueur CSS. Par défaut à 600px.
Nom: IncludeSearchInPersistedState
Type: bool
Par défaut: False
Description: Que la recherche soit maintenue avec le reste de l’État. N’a aucun effet sans KanbanBoard.PersistedStateQueryParameter.
Nom: LaneAggregateFormats
Type: IReadOnlyDictionary<string, string>?
Description: Le format des KanbanBoard.LaneAggregates totaux de chaque colonne est indiqué en (« N0 »), par son nom.
Nom: LaneAggregates
Type: IReadOnlyDictionary<string, QueryAggregate>?
Description: Les totaux que l’en-tête de chaque voie indique au départ — une somme, une moyenne, le minimum, le plus ou un compte d’une colonne, par son nom. L’utilisateur les modifie avec le bouton Totaux, et une sauvegarde La vue les retient.
Nom: LaneColumn*
Type: string
Description: La colonne d’où proviennent les voies : un choix, une raison de statut, un Oui/Non, une recherche ou une colonne de date du tableau du tableau. Tout autre montre un message à la place du tableau. Les voies d’une colonne de date sont quand elle tombe, dans les jours du fuseau horaire de l’utilisateur : En retard, Aujourd’hui, Demain, Cette semaine, La semaine prochaine, Plus tard et Pas de date, ni des pages KanbanBoard.DateLanes (KanbanBoard.DateLaneDrop, KanbanBoard.DateLaneOrder).
Nom: LaneLimits
Type: IReadOnlyDictionary<string, int>?
Description: Le plus grand nombre de cartes que chaque voie devrait contenir est : KanbanLane.Keyl’en-tête d’une voie limitée indique son compte par rapport à sa limite (« 4 / 5 »), et la marque lorsque la voie en contient plus. Le Le compte correspond à toute la voie, quelle que soit la recherche et les filtres de l’utilisateur. Une voie non nommée Il n’y a pas de limites.
Nom: Lanes
Type: IEnumerable<string>?
Description: Les voies du plateau affichent, et dans quel ordre, par KanbanLane.Key: une option valeur (« 1 »), les « 1 » et « 0 » de Oui/Non, l’ID d’un enregistrement, la clé d’une zone de date (KanbanDateLane.Key : « en retard »,« aujourd’hui », ...), ou une clé vide pour le Voie de cartes sans valeur. Chaque voie, dans l’ordre de Dataverse, lorsqu’elle n’est pas donnée. Pour les lanes de date Il choisit parmi les KanbanBoard.DateLanes, dont les jours restent tels que ceux qui les définissent.
Nom: LookupLanes
Type: IEnumerable<LookupValue>?
Description: Les voies d’une recherche : une pour chaque enregistrement, dans l’ordre donné. Sans celles-ci, le tableau affiche une voie pour chaque enregistrement, le nom de la carte de la vue.
Nom: PageSize
Type: int
Par défaut: 20
Description: Les cartes qu’une voie lit à la fois ; les suivantes viennent avec son Chargement plus. Par défaut, c’est 20.
Nom: PersistedStateQueryParameter
Type: string?
Description: Le nom d’un paramètre de requête URL pour conserver l’état de la carte — la vue choisie, les voies collapse et (avec KanbanBoard.IncludeSearchInPersistedState) la recherche — donc un rechargement ou un Link l’ouvre là où il était resté. Chaque changement remplace l’entrée historique du navigateur.
Nom: PrepareNewRecord
Type: Func<KanbanNewRecord, Task>?
Description: Prépare l’enregistrement d’une nouvelle carte avant l’ouverture de sa forme — depuis le bouton Ajouter d’une voie ou KanbanBoardContext.NewAsync(PowerPortalsPro.Common.Models.KanbanLane) — une fois que le plateau lui a attribué la valeur de la voie : le L’hôte définit les valeurs par défaut via l’indexeur de l’enregistrement (carte. Enregistrement['column'] = valeur), et chaque valeur qu’il définit est sauvegardée avec l’enregistrement. Le formulaire ne s’ouvre pas s’il est lancé, et l’erreur est affiché comme un Creation Is échoué.
Nom: RankColumn
Type: string?
Description: Une colonne décimale où le plateau garde l’ordre des cartes, à la main : chaque voie est triée par celle-ci, et une carte lâchée entre deux autres reçoit un rang entre les leurs. Sans celle-ci, les cartes suivent La vue est un peu plus simple, et une carte ne se déplace qu’à une autre voie.
Nom: SaveChange
Type: Func<KanbanCardMove, Task<bool>>?
Description: Sauvegarde un coup à la place du plateau ; le retour false remet la carte en arrière, comme lorsque le jet de sauvegarde est refusé. Sans cela, le plateau sauvegarde lui-même le coup. Un coup qui ferme le La carte est donnée une fois que l’utilisateur a expliqué comment, avec la demande d’envoi KanbanCardMove.Close; un état qui modifie un état que gouvernent les transitions de la table, une fois que l’utilisateur l’a confirmé.
Nom: SavedViewsKey
Type: string?
Description: Nomme ce tableau parmi les commandes de sa table, donc les vues enregistrées dessus et celles de l’utilisateur Les vues par défaut et cachées sont les siennes. Sans celle-ci, le conseil partage ses vues avec chaque grille, Calendrier et tableau de la table qui n’en a pas. Lettres, chiffres, -, _ et ..
Nom: ShowEmptyLanes
Type: bool
Par défaut: True
Description: Indiquer si une voie sans cartes est indiquée. Par défaut à true.
Nom: ShowRecordLinks
Type: bool
Par défaut: True
Description: Que les cartes renvoient à leurs pages d’enregistrements, enregistrées sur AddRecordPage, sous forme de grille les lignes et les recherches en font partie. Lorsque la table du plateau a une page et que le tableau reçoit non KanbanBoard.Form, le titre d’une carte renvoie à la page de son enregistrement et l’ouverture de la carte y mène ; Une recherche sur une carte renvoie à la page de son enregistrement où cette table en a une. Un tableau sans page ouvre ses cartes dans la boîte de dialogue du plateau. Une nouvelle carte est toujours créée dans la boîte de dialogue. Par défaut true.
Nom: SignInUrl
Type: string
Par défaut: Account/Login
Description: Lorsqu’un utilisateur non connecté est envoyé se connecter depuis le menu des vues sauvegardées ; il revient à cette page. En fonction de l’adresse de base de l’application. Par défaut, compte / connexion.
Nom: Title
Type: string?
Description: Le titre du tableau, affiché à la place du sélecteur de vue lorsqu’il n’y a qu’une seule vue.
Nom: ToolbarItems
Type: RenderFragment?
Description: Des contrôles pour la barre d’outils — KanbanBoardButtons, ou tout autre balisage — avant la boîte de recherche.
Nom: ViewIds
Type: IEnumerable<Guid>?
Description: D’autres vues de la même table, l’utilisateur peut basculer dans le sélecteur de vue.
Nom: ViewSort
Type: ViewSort
Par défaut: NameAscending
Description: L’ordre des vues dans le sélecteur. Par défaut est ViewSort.NameAscending, comme dans une grille.

Méthodes

Nom
Paramètres
Type
Description
RefreshAsyncTask
Il lit à nouveau chaque voie montrée.
Nom: RefreshAsync
Type: Task
Description: Il lit à nouveau chaque voie montrée.