为了账号安全,请及时绑定邮箱和手机立即绑定

DropDownlist的Item显示多列数据

标签:
JavaScript

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

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

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

5acf07320001405b00110016.jpgUsers <?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 数据类型:

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

 

aspx:

5acf07320001405b00110016.jpgView Code  <asp:DropDownList ID="DropDownList1" runat="server" OnDataBound="DropDownList1_DataBound1">                  
        </asp:DropDownList>

 

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

5acf07320001405b00110016.jpgView 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组合为一个字衔串。

5acf07320001405b00110016.jpgGetFullName 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"事件:

5acf07320001405b00110016.jpgView 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));
        }
    }

 


 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消