前一次,在数据库绑定好需要显示的字段。这链接可参考到原来实现的方法:http://www.cnblogs.com/insus/articles/2075101.html

此次,Insus.NET想使用另外一种方法来实现它。使用OnDataBound事件重写它的Text绑定。

数据源是一个XML文件,放在Web 程序的App_Data目录下:

Users

<?xml version="1.0" encoding="utf-8" ?>
<users>
    <user>
        <id>0</id>
        <FirstName>Johe</FirstName>
        <LastName>Li</LastName>
    </user>
    <user>
        <id>1</id>
        <FirstName>Michael</FirstName>
        <LastName>Zhang</LastName>
    </user>
    <user>
        <id>2</id>
        <FirstName>Mary</FirstName>
        <LastName>ping</LastName>
    </user>
</users>

写一个方法,获取数据,返回一个DataTable 数据类型:

View Code

private DataTable DataSource()
    {
        DataSet objDs = new DataSet();
        objDs.ReadXml(HttpContext.Current.Server.MapPath("~/App_Data/Users.xml"));
        return objDs.Tables[0];
    }

aspx:

View Code

<asp:DropDownList ID="DropDownList1" runat="server" OnDataBound="DropDownList1_DataBound1">                  
        </asp:DropDownList>

在aspx.cs为DropDownList控件绑定数据:

View Code

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Data_Binding();
        }
    }

private void Data_Binding()
    {
        this.DropDownList1.DataSource = DataSource();
        this.DropDownList1.DataTextField = "FirstName";
        this.DropDownList1.DataValueField = "id";
        this.DropDownList1.DataBind();
    }

现在我们还要写一个函数,参数为传入记录的id,即是DropDownList的DataValueField,返回Firstname与Lastname组合为一个字衔串。

GetFullName

private string GetFullName(string id)
    {
        string ln = string.Empty;
        foreach (DataRow dr in DataSource().Rows)
        { 
            if (string.Compare(dr["id"].ToString(),id) == 0)
            {
                ln = dr["FirstName"].ToString() + " " + dr["LastName"].ToString();
                break;
            }
        }
        return ln;
    }

最后,我们还要实现OnDataBound="DropDownList1_DataBound1"事件:

View Code

protected void DropDownList1_DataBound1(object sender, EventArgs e)
    {
        var ddl = sender as DropDownList;

foreach (ListItem li in ddl.Items)
        {
            li.Text = string.Format("{0}", GetFullName(li.Value));
        }
    }

可从下面图片看到实现前后对比效果:

转载于:https://www.cnblogs.com/insus/archive/2011/11/17/2252587.html

DropDownlist的Item显示多列数据相关推荐

  1. android listview 列加id,Android实战开发之ListView同一个item显示2列的实现方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Android实战开发中,ListView控件用途十分广泛,各种自定义控件多种多样.当项目要求实现一个2列的商品列表形式的界面,我们首先肯定想到用List ...

  2. android 两列菜单,【Android】实战开发之ListView同一个item显示2列的实现方法(仿2列商品列表)...

    Android实战开发中,ListView控件用途十分广泛,各种自定义控件多种多样.当项目要求实现一个2列的商品列表形式的界面,我们首先肯定想到用ListView,然后我们可以使用百度的自定义List ...

  3. RecyclerView系列(五)item显示列数切换

    效果图 实现原理 RecyclerView搭配GridLayoutManager manager = new GridLayoutManager(this, 3)构造出三列显示的Manager,在更改 ...

  4. R语言使用gt包和gtExtras包漂亮地显示表格数据:gtExtras包的gt_hulk_col_numeric函数对单列、多列数据进行着色、使用不同的调色板(color palette)对列着色

    R语言使用gt包和gtExtras包优雅地.漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解.gtExtras包的gt_hulk_col_numeric函数对单列.多列数据进行着色.使 ...

  5. pandas中set_option的常用设置:显示所有行、显示所有列、控制浮点型精度、每个数据元素的显示字符数、对齐形式等

    pandas中set_option的常用设置:显示所有行.显示所有列.控制浮点型精度.每个数据元素的显示字符数.对齐形式等 #pandas中set_option的常用设置 详细参考pandas API ...

  6. 成功解决采用ax.bar进行三维绘图绘制柱状图的时候,横坐标只显示三列而不是数据中的四列

    成功解决采用ax.bar进行三维绘图绘制柱状图的时候,横坐标只显示三列而不是数据中的四列 目录 解决问题 解决思路 解决方法 解决问题 输入数据为四列五行,如下所示: labelX_lists02= ...

  7. sql 某列数据全部为0则不显示该列_数据产品经理养成记(五):汇总分析

    学会了如何查找数据后,接下来就要对数据进行分析处理,比如求和.平均值.加总等等.这些对数据的加工处理通过汇总函数来实现.汇总函数在之前的两篇文章中都有涉及,这里采用概念--案例--总结的方式,集中介绍 ...

  8. 如何在FineUIMvc(ASP.NET MVC)中显示复杂的表格列数据(列表和对象)?

    起源 最初,这个问题是知识星球内的一个网友提出的,如何在FineUIMvc中展现复杂的列数据? 在FineUIPro中,我们都知道有一个 TemplateField 模板列可以使用,我们只需要在后台定 ...

  9. oracle 将多列数据合并成一列显示

    将多列数据合并成一列数据显示 方法一:执行update语句,之后select 出来,这个不是本次的重点 方法二:不执行update语句,直接select出来的时候就显示了,但是不改变表结构和数据 (A ...

最新文章

  1. 微信小程序 = 滚动页面
  2. 让FX1.1的NotifyIcon支持BalloonTip(1)
  3. shell中各种括号的作用
  4. linux下apache和jboss集群和负载均衡
  5. golang go-restful RESTful框架 简介
  6. Hadoop权威指南学习笔记三
  7. 激光IMU融合——LIO-Mapping / LIOM / LINS / LIO-SAM算法解析
  8. 前端学习(2686):重读vue电商网站7之登录预校验
  9. LeetCode:Restore IP Addresses
  10. JavaScript声明全局变量的三种方式
  11. 红盟云卡-开源的发卡网源码
  12. WinRAR安装程序打包教程
  13. arduino连接ps2手柄控制智能小车实践记录
  14. Windows电脑上不错的五款办公软件
  15. Ubuntu16.04+VMware15.0.4系统瘦身
  16. 区块链运营思路_区块链商业模式,及数字货币运营方案
  17. 纹理(Textures)
  18. vga转换html转换器接线,绿联HDMI转VGA转换器拆解测评
  19. npm学习(十七)之node_modules中的bin文件夹
  20. 解决complex转int的问题

热门文章

  1. CvSVM::EPS_SVR train_auto assertion sv_count != 0 failed原因
  2. android fragment 退出程序,android – 应用程序在Fragment中单击后退按钮后关闭
  3. Python将DataFrame的某一列作为index
  4. php零拷贝,百万并发「零拷贝」技术系列之初探门径
  5. 题解 guP2421 【[NOI2002]荒岛野人】
  6. UVALive 3905 Meteor (扫描线)
  7. 关于简单动态规划(Dynamic Programming)的总结
  8. 重载,重写及数组练习
  9. 基于MATLAB的IIR滤波器设计与实现
  10. 曹国伟:看准微博做大布局 哪怕革自己的命