CS实用框架开发过程(三)
这阶段主要实现:
第一、格式化的DataGridView
在做C/S系统的时候,少不了要跟表格打交道,展示最常用的控件应该就是DataGridView,以前在项目中为每个DataGridView添加列,调整格式而花费我不少时间。而现在这些工作,特别是后期修改的要求(列新删改调),都可以交给非编程人员。实现很简单,将DataGridView的列及其常用属性定义在XML文件,无论是使用或扩展都十分方便。下面是简单一个示例
<?xml version="1.0" encoding="utf-8"?>
<DataGridView>
<Column Name="MenuName" HeaderText="MenuName" ColumnType="System.Windows.Forms.DataGridViewTextBoxColumn" DataPropertyName="MenuName" Format="" DisplayIndex="0" Width="78" ReadOnly="False" Visible="True" />
<Column Name="MenuText" HeaderText="MenuText" ColumnType="System.Windows.Forms.DataGridViewTextBoxColumn" DataPropertyName="MenuText" Format="" DisplayIndex="1" Width="78" ReadOnly="False" Visible="True" />
<Column Name="ParentMenuName" HeaderText="ParentMenuName" ColumnType="System.Windows.Forms.DataGridViewTextBoxColumn" DataPropertyName="ParentMenuName" Format="" DisplayIndex="2" Width="114" ReadOnly="False" Visible="True" />
<Column Name="Sort" HeaderText="Sort" ColumnType="System.Windows.Forms.DataGridViewTextBoxColumn" DataPropertyName="Sort" Format="" DisplayIndex="3" Width="54" ReadOnly="False" Visible="True" />
<Column Name="AssemblyName" HeaderText="AssemblyName" ColumnType="System.Windows.Forms.DataGridViewTextBoxColumn" DataPropertyName="AssemblyName" Format="" DisplayIndex="4" Width="102" ReadOnly="False" Visible="True" />
<Column Name="FormType" HeaderText="FormType" ColumnType="System.Windows.Forms.DataGridViewTextBoxColumn" DataPropertyName="FormType" Format="" DisplayIndex="5" Width="78" ReadOnly="False" Visible="True" />
<Column Name="Icon" HeaderText="Icon" ColumnType="System.Windows.Forms.DataGridViewTextBoxColumn" DataPropertyName="Icon" Format="" DisplayIndex="6" Width="54" ReadOnly="False" Visible="True" />
<Column Name="ToolTip" HeaderText="ToolTip" ColumnType="System.Windows.Forms.DataGridViewTextBoxColumn" DataPropertyName="ToolTip" Format="" DisplayIndex="7" Width="72" ReadOnly="False" Visible="True" />
<Column Name="ShortCut" HeaderText="ShortCut" ColumnType="System.Windows.Forms.DataGridViewTextBoxColumn" DataPropertyName="ShortCut" Format="" DisplayIndex="8" Width="78" ReadOnly="False" Visible="True" />
<Column Name="IsShowDialog" HeaderText="IsShowDialog" ColumnType="System.Windows.Forms.DataGridViewCheckBoxColumn" DataPropertyName="IsShowDialog" Format="" DisplayIndex="9" Width="83" ReadOnly="False" Visible="True" />
<Column Name="Enabled" HeaderText="Enabled" ColumnType="System.Windows.Forms.DataGridViewCheckBoxColumn" DataPropertyName="Enabled" Format="" DisplayIndex="10" Width="53" ReadOnly="False" Visible="True" />
<Column Name="IsDummy" HeaderText="IsDummy" ColumnType="System.Windows.Forms.DataGridViewCheckBoxColumn" DataPropertyName="IsDummy" Format="" DisplayIndex="11" Width="53" ReadOnly="False" Visible="True" />
</DataGridView>
第二、菜单及权限管理
先看看模型图(详细字段参数数据库)
结合了用户授权和角色授权,在程序中先判断UserRight是否存在,没有个人权限然后再去判断角色权限,就是说个人权限优先级较高,实现对角色权限的微调。代码也很简单,在打开窗体之前调用Authorization方法获取权限,只要对Authorization作修改就可以随时更换权限控制的逻辑
/Files/lsfphs/Hysoft-2010-01-21.rar