Accueil Blog (en) Personnalisation: Comment ajouter une action dans le menu contextuel sur une grille

Personnalisation: Comment ajouter une action dans le menu contextuel sur une grille

Yuriy Zaletskyy | Le 5 mai 2022

Personnalisation: Comment ajouter une action dans le menu contextuel sur une grille

Introduction

La façon habituelle ou par défaut de travailler avec les grilles Acumatica est de mettre en œuvre des boutons au-dessus de la grille. Mais il y a des gens qui aiment avoir un élément de menu contextuel . De cette façon, l’utilisateur peut utiliser un clic droit de la souris pour effectuer une action.

Dans cet article, je décrirai les étapes nécessaires que vous devrez prendre en tant que développeur pour fournir cette capacité à vos utilisateurs finaux.

Utilisation de sous-attâche

Dans un cas d’utilisation où nous devons ajouter un bouton d’action à une grille et que nous voulons que ce bouton d’action n’apparaisse que dans le menu qui s’ouvre avec un clic droit, nous voudrons diviser cette tâche en deux sous-tâches:

  1. Ajouter un bouton d’action à la grille; et
  2. Rendez ce bouton visible uniquement dans le menu qui s’ouvre sur un clic droit

Commençons par la première tâche. À chaque grille d’un fichier aspx, il y a une partie où les boutons d’action sont définis:

<px:PXGrid   …  ID=”grid” DataSourceID=”ds”>

<Levels>                                      

</Levels>

<ActionBar>

             [L’action devrait aller ici]

</ActionBar>

</px:PXGrid>

Afin d’ajouter un bouton d’action, nous devons l’implémenter comme suit:

<ActionBar>

<CustomItems>

<px:PXToolBarButton Text=”Insert Row” ImageSet=”main” ImageKey=”AddNew” DependOnGrid=”grid”>

<AutoCallBack Target=”ds” Command=”AddNewDSLine”/>                                                               

</px:PXToolBarButton>

</CustomItems>

</ActionBar>

*Notez ce qui suit :

Texte – le nom qui apparaîtra à l’écran

ImageSet et ImageKey - nécessaire pour ajouter l’icône sur le bouton

DependOnGrid – l’ID de la grille

Cible – DataSourceID de la grille

Commande – nom de l’action dans le graphique

De plus, nous devrions ajouter une méthode d’action simple à notre graphique. Quelque chose comme ça fonctionnera:

public PXAction<DailySales> AddNewDSLine;

[PXButton(CommitChanges = true)]

[PXUIField(Enabled = true, MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]

protégé virtuel IEnumerable addNewDSLine(adaptateur PXAdapter)

{

...

}

Maintenant, si nous publions le projet, nous verrons ce bouton ici:

Personnalisation: Comment ajouter une action dans le menu contextuel sur une grille

Passons à la deuxième tâche. Pour ce faire, nous devrions changer le

<ActionBar ToolBarVisible=”External” MenuVisible=”true”/>

ToolBarVisible - avec ce paramètre, nous rendons le bouton invisible dans le menu en haut de la grille

MenuVisible - avec ce paramètre, nous ajoutons le bouton au menu qui s’ouvre sur le clic droit

Donc, le code final ressemblera à ceci:

<ActionBar>

<CustomItems>

<px:PXToolBarButton Text=”Insert Row” ImageSet=”main” ImageKey=”AddNew” DependOnGrid=”grid”>

             <AutoCallBack Target=”ds” Command=”AddNewDSLine”/>

             <ActionBar ToolBarVisible=”External” MenuVisible=”true”/>

</px:PXToolBarButton>

</CustomItems>

</ActionBar>

Et sur l’écran, nous aurons quelque chose qui ressemble à ceci:

Personnalisation: Comment ajouter une action dans le menu contextuel sur une grille

Et c’est tout. Assez simple et simple pour la plupart.

Résumé

Dans ce court post, Je peux vous montrer comment ajouter un peu de redondance à l’interface utilisateur des grilles en ajoutant une action sur le menu contextuel sur une grille. Un autre scénario que nous pourrions être où nous voulons avoir 5 boutons dans la grille ci-dessus, et d’autres types de fonctionnalité dans le menu contextuel de la grille.

J’espère que cela a été utile.

Bon codage!

 

Auteur du blog

Yuriy a commencé à programmer en 2003 en utilisant C ++ et FoxPro, puis est passé à .Net en 2006. Depuis 2013, il développe activement des applications à l’aide du cadre Acumatica xRP, développant des solutions pour de nombreux clients au fil des ans. Il a un blog personnel, bien nommé Yuriy Zaletskyy’s Blog, où il a documenté les problèmes de programmation qu’il a rencontrés au cours des six dernières années - partageant librement ses observations et ses solutions avec d’autres développeurs Acumatica.

Recevez des mises à jour de blog dans votre boîte de réception.