/// <summary>
/// 用来控制人员管理显示菜单的参数配置
/// </summary>
public class UserMenuParameter
{
[DefaultValue("")]
[Description("用户ID")]
public string UserID { get; set; }
[Description("用户设置可见的菜单")]
public Dictionary<string, bool> VisibleDict { get; set; }
}
//参数存储所需的相关对象 private SettingsProvider settings; private ISettingsStorage store; private UserMenuParameter parameter;
// PortableStorage: 在运行程序目录创建一个setting的文件记录参数数据 // DatabaseStorage:在数据库TB_UserParameter表存储用户配置参数 store = new DatabaseStorage(LoginUserInfo.ID); settings = new SettingsProvider(store); parameter = settings.GetSettings<UserMenuParameter>();
try
{
parameter = settings.GetSettings<UserMenuParameter>();
parameter.VisibleDict = dict;
parameter.UserID = LoginUserInfo.ID;
settings.SaveSettings<UserMenuParameter>(parameter);
ProcessDataSaved(sender, e);//触发外部事件
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
catch (Exception ex)
{
LogHelper.Error(ex);
MessageDxUtil.ShowError(ex.Message);
return;
}
/// <summary>
/// 获取菜单是否可见。
/// 仅当参数存在对应记录,并且该记录显式设置不可见,菜单才不可见,否则默认菜单是可以看到的。
/// </summary>
/// <param name="id">菜单ID</param>
/// <returns></returns>
private bool GetVisibleMenu(string id)
{
bool result = true;
if (parameter != null)
{
var dict = parameter.VisibleDict;
if(dict != null && dict.ContainsKey(id))
{
result = dict[id];
}
}
return result;
}
/// <summary>
/// 递归获取选中的树节点集合
/// </summary>
/// <param name="node">树节点</param>
/// <param name="dict">字典集合</param>
/// <returns></returns>
private Dictionary<string, bool> GetTreeSelection(TreeNode node, Dictionary<string, bool> dict)
{
if (node.Tag != null)
{
var check = node.Checked;
var menuId = string.Concat(node.Tag);
if(!dict.ContainsKey(menuId))
{
dict.Add(menuId, check);
}
}
foreach (TreeNode child in node.Nodes)
{
GetTreeSelection(child, dict);
}
return dict;
}
/// <summary>
/// 保存用户配置信息
/// </summary>
private void btnOK_Click(object sender, EventArgs e)
{
//获取用户勾选的树列表,存放在字典集合里面
var dict = new Dictionary<string, bool>();
foreach(TreeNode node in this.treeView1.Nodes)
{
GetTreeSelection(node, dict);
}
try
{
//重新获取参数信息,并设置新值后保存
parameter = settings.GetSettings<UserMenuParameter>();
parameter.VisibleDict = dict;
parameter.UserID = LoginUserInfo.ID;
settings.SaveSettings<UserMenuParameter>(parameter);
ProcessDataSaved(sender, e);//触发外部事件
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
catch (Exception ex)
{
LogHelper.Error(ex);
MessageDxUtil.ShowError(ex.Message);
return;
}
}
private void tool_MenuSetting_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
MenuSetting();
}
/// <summary>
/// 配置菜单项
/// </summary>
private void MenuSetting()
{
FrmMenuSetting dlg = new FrmMenuSetting();
dlg.OnDataSaved += (s, arg) =>
{
//用户保存参数后,提示用户更新树形列表
InitToolbar();
};
dlg.ShowDialog();
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有