我有一个ASP.NET(VB.NET)页面,上面有Infragistics网格。其中一列称为“状态”。
当我加载网格时,我正在设置列级别字段的权限,授予用户角色(ENUM'UserTypes')read / only或读/写权限。
接下来,我需要循环遍历每一行,并根据字段“status”中的值(ENUM StatusVals)以及用户角色分配权限。
我已经完成了所有这些工作,但看起来很笨重,我想改进它。
这是我连续传递的方法之一的快照,该行的记录状态,以及用户类型和循环遍历单元格以分配权限和颜色。问题是:是否有一种更优雅的方式来做到这一点,因为当我添加它,它不会成为一个野兽?
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
答案 0 :(得分:0)
您可能想要查看ASP.Net(2.0及更高版本)中的LoginView控件,它会为您提供模板控件,将模板映射到ASP.Net角色,包括未登录(匿名)。
这个QuickStarts虽然有点过时,但它表明了一个简单的例子,但这一点非常干净。