首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> ASP.NET >> 正文

如何在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;
  } 

 

[1] [2] 下一页

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航