引言
在UML系列学习中的小插曲:
在上篇中只拿登录界面练练手,不把主界面抠出来,实在难受,严重的强迫症啊。之前一直在总结UML系列,也没把主要精力放在这上面,最近腾出了点时间,整理一下,一是学习,二是张张姿势。
晒图
原图:
LZ纯F12呕心后力作:
数据库设计
1 GO 2 3 /****** Object: Table [dbo].[TB_EventInfo] Script Date: 12/02/2013 20:57:44 ******/ 4 SET ANSI_NULLS ON 5 GO 6 7 SET QUOTED_IDENTIFIER ON 8 GO 9 10 SET ANSI_PADDING ON11 GO12 13 CREATE TABLE [dbo].[TB_EventInfo](14 [EventId] [varchar](50) NOT NULL,15 [ParentId] [varchar](50) NOT NULL,16 [Code] [varchar](50) NULL,17 [FullName] [varchar](50) NOT NULL,18 [Description] [varchar](50) NULL,19 [Img] [varchar](50) NULL,20 [Category] [varchar](50) NULL,21 [NavigateUrl] [varchar](200) NULL,22 [FormName] [varchar](200) NULL,23 [Target] [varchar](50) NULL,24 [IsUnfold] [int] NULL,25 [AllowEdit] [int] NULL,26 [Enabled] [int] NULL,27 [SortCode] [int] NULL,28 [DeleteMark] [int] NULL,29 [CreateDate] [datetime] NULL,30 [CreateUserId] [varchar](50) NULL,31 [CreateUserName] [varchar](50) NULL,32 [ModifyDate] [datetime] NULL,33 [ModifyUserId] [varchar](50) NULL,34 [ModifyUserName] [varchar](50) NULL,35 [AllowDelete] [int] NULL,36 CONSTRAINT [PK_TB_MenuEvent] PRIMARY KEY CLUSTERED 37 (38 [EventId] ASC39 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]40 ) ON [PRIMARY]41 42 GO43 44 SET ANSI_PADDING OFF45 GO46 47 ALTER TABLE [dbo].[TB_EventInfo] ADD CONSTRAINT [DF_MenuEvent_Enabled] DEFAULT ((1)) FOR [Enabled]48 GO49 50 ALTER TABLE [dbo].[TB_EventInfo] ADD CONSTRAINT [DF_MenuEvent_DeleteMark] DEFAULT ((1)) FOR [DeleteMark]51 GO52 53 ALTER TABLE [dbo].[TB_EventInfo] ADD CONSTRAINT [DF_MenuEvent_CreateDate] DEFAULT (getdate()) FOR [CreateDate]54 GO
数据库在的文章中字段有相关说明,可以使用。
这里有id和parentID 猜都猜出来是怎么回事!
DT的iframe
在主界面中,右侧显示部分用到了iframe,查看源码,着实费了不少功夫,关于iframe的使用,以及父页面怎么通过js访问到子页面的方法等通过努力还是让我给解决了。通过这个过程,也学到不少东西。
这里只将主界面的代码贴出来分享一下。iframe中嵌套的页面,大家可以去的文章《》中有提供相关链接,希望自己动手也尝试一下。
1 2 3 4 5 6 7176 177.NET快速信息化系统开发框架 8 9 10 11 12 13 14 15 16 17 18 72 73 74
在用iframe的时候,总是弹出TypeError:不支持属性和方法。
罪魁祸首:
1 ////子菜单 2 function GetSubmenu(menu_id, menu_Name) { 3 4 try { 5 //iframe导向 tabs_iframe_Imain 6 top.tabs_iframe_Imain.LoadSubmenu(MenuJson, menu_id, menu_Name);//子功能选项 7 } catch (e) { 8 alert(e.message) 9 }10 }因为找不到tabs_iframe_Imain才出现的这个错误。研究了很久,发现将表单红的代码用一个div包起来就解决问题了。
原因:
1 $(document).ready(function () {2 AddTabMenu('Imain', 'MainTouchSubmenu.aspx', '首页主控台', '4963_home.png', 'false');3 $("#tabs_iframe_Imain").css('margin-top', '0px').css('margin-left', '0px');4 iframeresize();5 writeDateInfo();6 7 });因为这里面的Imain,AddTabMenu方法中,标签的id是拼接的,猜想是找不到Imain所以找不到iframe吧。具体原因没深入研究。
遇到的问题
在上篇文章中,很多博友推荐我使用工具,可能是LZ太笨了,工具不会用啊.....而有些工具下载下来的图片都不全,lz也只能查看html代码,css代码把一个一个图片给扣下来(这里只扣了权限应用里面的)。其他的实在不想弄了,太多了.....懒啊。图片大小差不多,就是实现功能,那些都是次要的。只要不影响主界面布局,都是次要的。
其它就个人发挥,使用easyUI来展示了。
刚将datagrid弄到人员管理的页面中,也晒晒,样式什么的都没调。
dataGrid表头信息的html代码:
1
cs代码:
1 public partial class EmployeeList : System.Web.UI.Page 2 { 3 protected string tbHeadHtml = string.Empty; 4 protected void Page_Load(object sender, EventArgs e) 5 { 6 if (!IsPostBack) 7 { 8 Type type = typeof(Model.UserInfoModel); 9 foreach (PropertyInfo item in type.GetProperties())10 {11 foreach (Attribute des in item.GetCustomAttributes())12 {13 DescriptionAttribute d = des as DescriptionAttribute;14 tbHeadHtml += "" + d.Description + "";15 }16 }17 }18 }19 }
用户信息UserInfo主要用到特性:DescriptionAttribute。通过反射将信息拼接到html上面。字段太多,不想一个一个的写啊。又懒了......
之前看书看到特性的用法,一直想特性用到什么地方好呢?这里面就现学现卖了。有点非主流了,不过用起来挺爽的。特性介绍篇:
总结
一直在都想弄一个权限管理的框架,一是学习,二是张张姿势。
lz很懒,能偷懒的地方就偷懒了。这里就不再提供源码下载了,涉及作者的版权问题。需要的还请购买正版。呵呵。