Accueil Blog Personnalisation : Comment ajouter une action au menu du clic droit sur une grille

Personnalisation : Comment ajouter une action au menu du clic droit sur une grille

Yuriy Zaletskyy | 5 mai 2022

Personnalisation : Comment ajouter une action au menu du clic droit sur une grille

Introduction

La manière habituelle ou par défaut de travailler avec les grilles Acumatica est d'implémenter des boutons au-dessus de la grille. Mais certaines personnes préfèrent avoir un 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 suivre en tant que développeur pour fournir cette capacité à vos utilisateurs finaux.

Utilisation des sous-tâches

Dans un cas d'utilisation où nous devons ajouter un bouton d'action à une grille et où 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
  2. Rendre ce bouton visible uniquement dans le menu qui s'ouvre lors d'un clic droit

Commençons par la première tâche. Dans 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 doit se dérouler ici]

</ActionBar>

</px:PXGrid>

Pour 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écessaires pour ajouter l'icône sur le bouton

DependOnGrid - l'ID de la grille

Cible - DataSourceID de la grille

Commande - le nom de l'action dans le graphique

En outre, nous devons ajouter une méthode d'action simple à notre graphique. Quelque chose comme ceci fonctionnera :

public PXAction<DailySales> AddNewDSLine;

[PXButton(CommitChanges = true)]

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

protected virtual IEnumerable addNewDSLine(PXAdapter adapter)

{

...

}

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

Personnalisation : Comment ajouter une action au menu du clic droit sur une grille

Passons à la deuxième tâche. Pour ce faire, nous devons modifier l'élément

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

ToolBarVisible - ce paramètre permet de rendre le bouton invisible dans le menu situé en haut de la grille.

MenuVisible - ce paramètre permet d'ajouter le bouton au menu qui s'ouvre lors d'un clic droit.

Le code final ressemblera donc à 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>

Sur l'écran, nous aurons quelque chose qui ressemblera à ceci :

Personnalisation : Comment ajouter une action au menu du clic droit sur une grille

Et c'est tout. C'est assez simple et direct pour l'essentiel.

Résumé

Dans ce court billet, je vais vous montrer comment ajouter un peu de redondance à l'interface utilisateur des grilles en ajoutant une action dans le menu du clic droit sur une grille. Un autre scénario pourrait être celui où nous voulons avoir 5 boutons dans la grille ci-dessus, et d'autres types de fonctions dans le menu contextuel de la grille.

J'espère que cela vous a été utile.

Bon codage !

 

Auteur du blog

Yuriy a commencé à programmer en 2003 en utilisant C++ et FoxPro avant de passer à .Net en 2006. Depuis 2013, il développe activement des applications utilisant le 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 documente les problèmes de programmation qu'il a rencontrés au cours des six dernières années - partageant ses observations et ses solutions librement avec d'autres développeurs Acumatica.

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