J'ai une page ASP.NET (VB.NET) qui contient une grille Infragistics. L'une des colonnes s'appelle 'status'. Lorsque je charge la grille, je définis des autorisations sur les champs au niveau de la colonne, accordant des rôles utilisateur (ENUM 'UserTypes') en lecture seule ou en lecture/écriture.Comment améliorer la méthode d'attribution d'autorisations de grille
Ensuite, je dois parcourir chaque ligne et affecter des permissions en fonction de la valeur (ENUM StatusVals) dans le champ 'status' ainsi que du rôle de l'utilisateur.
J'ai tout cela fonctionne, mais il semble maladroit et je veux l'améliorer.
Voici un aperçu de l'une des méthodes dans lesquelles je passe à la suite, le statut de l'enregistrement pour cette ligne, et le type d'utilisateur et la boucle à travers les cellules pour attribuer les autorisations et les couleurs. La question est la suivante: existe-t-il une façon plus élégante de faire cela pour que, au fur et à mesure que j'ajoute, cela ne devienne pas une bête?
Private Shared Sub SetDetailRowReadWrite_ByStatusVal(ByVal DetailRow As
ig.UltraGridRow, ByVal sv As StatusVals, ByVal UserType As UserRoles)
If sv = StatusVals.Pending _
OrElse sv = StatusVals.Released _
OrElse sv = StatusVals.Shipped _
OrElse sv = StatusVals.Consolidated _
OrElse sv = StatusVals.HOLD _
OrElse sv = StatusVals.Cancelled _
OrElse sv = StatusVals.PartialShipped Then
For Each column As ig.UltraGridCell In DetailRow.Cells
If column.Key = "StatusVal" Then
column.Style.BackColor = Drawing.Color.LightGreen
column.Style.ForeColor = Drawing.Color.Black
If UserType = UserRoles.Fulfillment Then
SetFulfillmentStatusValEditPermission(sv, column)
End If
ElseIf Not (sv = StatusVals.Consolidated AndAlso UserType = UserRoles.Fulfillment) Then
column.Style.BackColor = Drawing.Color.White
column.AllowEditing = ig.AllowEditing.No
End If
Next
LockSizesRow(DetailRow, UserType, sv)
ElseIf sv = StatusVals.Incomplete AndAlso UserType = UserRoles.Fulfillment Then
For Each c As ig.UltraGridCell In DetailRow.Cells
c.AllowEditing = UltraWebGrid.AllowEditing.No
Next
End If
End Sub