#region using System; using System.Collections.Generic; using CSFrameworkV5.Business.BLL_Permission; using CSFrameworkV5.Core; using DevExpress.XtraGrid.Views.Grid; #endregion namespace CSFrameworkV5.Library.CommonClass { /// /// 支持配置表格权限的界面 /// public interface IFormGridPermission { /// /// 获取当前界面的表格实例 /// /// List GetGrids(); /// /// 设置表格权限 /// void SetGridsPermission(); } /// /// 表格实例 /// public class GridPermissionItem { public GridPermissionItem(string displayName, GridView view) { DisplayName = displayName; GridView = view; GridId = ParseViewId(view); } public string DisplayName { get; set; } public string GridId { get; set; } public GridView GridView { get; set; } public static string ParseViewId(GridView view) { var id = view.GridControl.FindForm().GetType().FullName + "." + view.Name; return id; } } /// /// 表格权限配置应用 /// public class GridPermissionConfig { /// /// 设置表格的权限 /// /// public static void SetPermission(GridView view) { var id = GridPermissionItem.ParseViewId(view); //获取需要隐藏的列 var columns = new bllPermission().GetGridPermissionById( Loginer.CurrentUser.Account, id); if (string.IsNullOrWhiteSpace(columns)) return; var fields = columns.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (var field in fields) { var col = view.Columns.ColumnByFieldName(field); if (col != null) view.Columns.Remove(col); } } } }