#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);
}
}
}
}