#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
|
{
|
/// <summary>
|
/// 支持配置表格权限的界面
|
/// </summary>
|
public interface IFormGridPermission
|
{
|
/// <summary>
|
/// 获取当前界面的表格实例
|
/// </summary>
|
/// <returns></returns>
|
List<GridPermissionItem> GetGrids();
|
|
/// <summary>
|
/// 设置表格权限
|
/// </summary>
|
void SetGridsPermission();
|
}
|
|
/// <summary>
|
/// 表格实例
|
/// </summary>
|
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;
|
}
|
}
|
|
/// <summary>
|
/// 表格权限配置应用
|
/// </summary>
|
public class GridPermissionConfig
|
{
|
/// <summary>
|
/// 设置表格的权限
|
/// </summary>
|
/// <param name="view"></param>
|
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);
|
}
|
}
|
}
|
}
|