组合控件

分享于 

7分钟阅读

Web开发

  繁體
Sample screenshot

介绍

这是一个控件,可以帮助生成选项卡,菜单,slider 条形图和树视图。 控件是从XML动态创建的。

背景

我们看到许多网页有许多控件。 市场上的大多数控件都是安静的,他们只做一个工作( 例如 )。 如果是菜单控件,则不能将它的用于选项卡)。 这里控件具有所有内置功能,包括安全性。 例如,用户可以能希望选项卡中的某些项对特定用户可以见,例如管理员和常用用户。 在这种情况下,这将扮演重要角色。

这个控件很容易使用。 控件公开一些 public 属性以设置数据。外观'n'感觉和面板的事件。 通过设置这些属性,可以使用可折叠面板对信息进行很好的分组。

使用代码

用户控件具有六个 public 属性:

  • Controltype - 提到控件的类型( 标签,树,面板,菜单)
  • Display - 设置控件的对齐方式( 仅适用于 Controltype = 菜单)
  • PageTitle - 设置页面标题( 仅适用于 arraylist = tab )
  • MainMenuSelected - 要设置主菜单( 仅适用于 arraylist = tab )
  • SubMenuSelected - 要设置选定的子菜单( 仅适用于 arraylist = tab )
  • ImageUrl - 在树( 仅用于 Controltype = 树) 中设置图像。
<%@RegisterTagPrefix="CONTROL"Namespace="Controls"Assembly="FOURINONE"%>//for tab<CONTROL:FourinOnerunat="server"PageTitle="Congress Type"Controltype="tab"MainMenuSelected="2"SubMenuSelected="1"/>//for tree<CONTROL:FourinOnerunat="server"Controltype="tree"/>//for panel bar<CONTROL:FourinOnerunat="server"Controltype="panel"/>//for menu - horizontal<CONTROL:FourinOnerunat="server"Controltype="menu"Display="h"/>//for menu - vertical<CONTROL:FourinOnerunat="server"Controltype="menu"Display="v"/>

要动态生成菜单,树,面板或者选项卡,XML应具有以下形式:

<Menu><MainMenuLabel="Registration"BaseURL="SearchCongress.aspx"MenuID="8"MainSecurity="AM"MenuSequence="1"ImageUrl="xp_documents.gif"><SubMenuLabel="Search"URL="SearchCongress.aspx"MenuID="8"Security="AM"SubMenuID="9"SubMenuSequence="1"ImageUrl="xp_documents.gif"/><SubMenuLabel="Add Company"URL="CompanyDetails.aspx"MenuID="8"Security="A"SubMenuID="6"SubMenuSequence="4"ImageUrl="xp_documents.gif"/><SubMenuLabel="New Order"URL="NewOrder.aspx"MenuID="8"Security="AM"SubMenuID="7"SubMenuSequence="5"ImageUrl="xp_documents.gif"/></MainMenu><MainMenuLabel="Maintenance"BaseURL="Congress.aspx"MenuID="6"MainSecurity="A"MenuSequence="4"ImageUrl="xp_documents.gif"><SubMenuLabel="Congress Type"URL="Congress.aspx"MenuID="6"Security="A"SubMenuID="1"SubMenuSequence="1"ImageUrl="xp_documents.gif"/><SubMenuLabel="Event Type"URL="EventType.aspx"MenuID="6"Security="A"SubMenuID="2"SubMenuSequence="2"ImageUrl="xp_documents.gif"/><SubMenuLabel="Sales Type"URL="SalesType.aspx"MenuID="6"Security="A"SubMenuID="3"SubMenuSequence="3"ImageUrl="xp_documents.gif"/><SubMenuLabel="Venue"URL="CongressVenue.aspx"MenuID="6"Security="A"SubMenuID="4"SubMenuSequence="4"ImageUrl="xp_documents.gif"/><SubMenuLabel="Office"URL="Office.aspx"MenuID="6"Security="A"SubMenuID="6"SubMenuSequence="6"ImageUrl="xp_documents.gif"/><SubMenuLabel="Sales Person"URL="SalesPerson.aspx"MenuID="6"Security="A"SubMenuID="7"SubMenuSequence="7"ImageUrl="xp_documents.gif"/><SubMenuLabel="Tax Rate"URL="TaxRate.aspx"MenuID="6"Security="A"SubMenuID="8"SubMenuSequence="8"ImageUrl="xp_documents.gif"/><SubMenuLabel="User"URL="User.aspx"Security="A"MenuID="6"SubMenuID="9"SubMenuSequence="9"ImageUrl="xp_documents.gif"/><SubMenuLabel="Option Type"MenuID="6"URL="PriceOption.aspx"Security="A"SubMenuID="10"SubMenuSequence="10"ImageUrl="xp_documents.gif"/></MainMenu></Menu>

MainMenu 节点中的MainSecurity 属性和 SubMenu 节点中的Security 属性用于在显示菜单项时实现安全性。 在这里控件中实现安全性时,在用户登录到系统时,将 UserType 保留在会话中,例如( 管理员 A )。 通过比较会话中的值,实现了安全性。

privatebool isAuthorised(string sSecString, string sSecType)
{
 return(sSecString.IndexOf(sSecType)>=0);
}

如果用户被授权查看该页面,isAuthorized 方法将返回 true,否则返回 0。 对于 exmple,我已经采用了两个用户,管理员( A ) 和主持人( M )。 我已经提到了只能由管理员看到的页面,可以将它的看作是 A,也可以看作 AM。 菜单可以使用 web.config 配置。

<addkey="MenuXMLPath"value="/helper/"/><addkey="MainMenuFontColor"value="#ffffff"/><addkey="MainMenuShadowColor"value="#999999"/><addkey="MainMenubGColor"value="#000088"/><addkey="MainMenuMouseoverColor"value="#000088"/><addkey="SubmenuBgColor"value="#cfd3d8"/><addkey="SubmenuMouseoverColor"value="#ffffff"/><addkey="SubmenuBorderColor"value="#0000cc"/><addkey="SubmenuFontColor"value="#000000"/><addkey="SubmenuMouseOverFontColor"value="#000000"/><addkey="SubmenuShadowColor"value="#666666"/>

COM  控制  
相关文章