ASP编程 PHP编程 JSP编程 NET编程 CGI编程 XML编程 
Google adsense申请技巧本站核心代理域名注册主机业务 快速发布你的买卖域名买卖网站信息 1元注册 cn域名
站长每日新闻导读 √ ·推荐万网空间¥120元 150m 站长网:站长必上的网站网站联盟大全本站代理万网域名55空间120元
 2007-7-20 14:31:31

如何在Asp.net中实现多彩下拉框

来源: 字体:[ ]

    开发背景: 
   有人曾经要我开发一个根据不同选择而显示不同颜色的管理工具。我开始考虑利用下拉框来实现条目背景及显示颜色根据条目名称不同而进行变化,根据这个思路我在网上搜了半天也没有找到任何相关的解决方案,最后我想到了一个比当初需求要复杂的方案(包括数据库),所以我尝试着找到一个更简单的实现方案。 
   
   该文主要是演示如何读取系统颜色并在下拉框中的每个条目中显示对应的颜色,该源码主要展示以下内容: 
   1、如何获得System.Drawing.KnownColor颜色控件的列表枚举 
   2、如何排除系统环境颜色,如“Active Border” 
   3、如何分配颜色到下拉框的每个条目 
   
  代码详解: 
   命名下拉框为ddlMultiColor 来显示颜色名称及颜色,用<div>标签显示右侧矩形结果,Aspx代码如下

  <table> 
   <tr> 
   <td> 
   <asp:DropDownList ID ="ddlMultiColor" 
   OnSelectedIndexChanged="ddlMultiColor_OnSelectedIndexChanged" 
   runat="server" AutoPostBack="true"> 
   </asp:DropDownList> 
   </td> 
   <td> 
   <div id="msgColor" runat="server"> 
   </div> 
   </td> 
   </tr> 
  </table> 

 
    在cs文件中我们需要引用以下命名空间:

  using System; 
  using System.Web; 
  using System.Reflection; 
  using System.Drawing; 
  using System.Collections.Generic; 


    我们先看一下Page_Load事件,在Page_Load中我们对选中的下拉列表进行处理显示

  protected void Page_Load(object sender, EventArgs e) 
  { 
   if (Page.IsPostBack == false) 
   { 
   populateDdlMultiColor(); //51aspx.com 
   colorManipulation(); 
   } 
  } 


    现在让我们来看一下populateDdlMultiColor() 函数

  private void populateDdlMultiColor() 
  { 
   ddlMultiColor.DataSource = finalColorList(); 
   ddlMultiColor.DataBind(); //liudao 翻译 
  } 
   
   finalColorList()方法 
  private List finalColorList() 
  { 
   string[] allColors = Enum.GetNames(typeof(System.Drawing.KnownColor)); 
   string[] systemEnvironmentColors = 
   new string[( 
   typeof(System.Drawing.SystemColors)).GetProperties().Length]; 
   
   int index = 0; 
   
   foreach (MemberInfo member in ( 
   typeof(System.Drawing.SystemColors)).GetProperties()) 
   { 
   systemEnvironmentColors[index ++] = member.Name; 
   } 
   
   List finalColorList = new List(); 
   
   foreach (string color in allColors) 
   { 
   if (Array.IndexOf(systemEnvironmentColors, color) < 0) 
   { 
   finalColorList.Add(color); 
   } 
   } 
   return finalColorList; 
  } 

网站地图 - 域名注册续费虚拟主机代理 - 交易论坛 - 网站投稿 - 广告服务 - 帮助中心 - 联系我们
Copyright ©2003-2007 www.Admin5.com All Rights Reserved