zoukankan      html  css  js  c++  java
  • DropDownlist的Item显示多列数据

    前一次,在数据库绑定好需要显示的字段。这链接可参考到原来实现的方法: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));
            }
        }

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

  • 相关阅读:
    html5 canvas 渐变
    html5 canvas 画直线
    html5在canvas中插入图片
    Window文件夹右击菜单定制
    HTML中解决双击会选中文本的问题
    Linux 下修改mysql 字符集编码
    mysqlimport导入命令使用
    PAM 2500 荧光数据导出数据整合脚本
    Resources for Ecology and Evolution
    Plant Ecology Journal Club, 分享主题和文献列表 825, 2019年春
  • 原文地址:https://www.cnblogs.com/insus/p/2252587.html
Copyright © 2011-2022 走看看