科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何在Asp.net中实现多彩下拉框

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

   开发背景: 有人曾经要我开发一个根据不同选择而显示不同颜色的管理工具。我开始考虑利用下拉框来实现条目背景及显示颜色根据条目名称不同而进行变化,根据这个思路我在网上搜了半天也没有找到任何相关的解决方案。

作者:中国IT实验室 来源:中国IT实验室 2007年10月2日

关键字: ASP.NET 编程

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

  

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

 

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章