您当前的位置:中客资源站网络学院ASP 编程ASP 应用 → 文章内容 退出登录 用户管理
本类热门文章
相关下载
如何在Asp.net中实现多彩下拉框
作者:本站整理  来源:站长网  发布时间:2007-8-11 4:48:37

减小字体 增大字体

    开发背景: 
   有人曾经要我开发一个根据不同选择而显示不同颜色的管理工具。我开始考虑利用下拉框来实现条目背景及显示颜色根据条目名称不同而进行变化,根据这个思路我在网上搜了半天也没有找到任何相关的解决方案,最后我想到了一个比当初需求要复杂的方案(包括数据库),所以我尝试着找到一个更简单的实现方案。 
   
   该文主要是演示如何读取系统颜色并在下拉框中的每个条目中显示对应的颜色,该源码主要展示以下内容: 
   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; 
  } 

[] [返回上一页] [打 印]
文章评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码