当前位置:  开发笔记 > 编程语言 > 正文

dropdownlist DataTextField由属性组成?

如何解决《dropdownlistDataTextField由属性组成?》经验,为你挑选了1个好方法。

有没有办法通过由对象的多个属性组成的c#在asp.net中创建下拉列表的datatextfield属性?

public class MyObject
{
  public int Id { get; set; }
  public string Name { get; set; }
  public string FunkyValue { get; set; }
  public int Zip { get; set; }
}

protected void Page_Load(object sender, EventArgs e)
{
  List myList = getObjects();
  ddList.DataSource = myList;
  ddList.DataValueField = "Id";
  ddList.DataTextField = "Name";
  ddList.DataBind();
}

我想要不要使用"名称",而是"名称(Zip)",例如.

当然,我可以更改MyObject类,但我不想这样做(因为MyObject类在模型类中,不应该在UI中做我需要的东西).



1> M4N..:

将另一个属性添加到MyObject类并绑定到该属性:

public string DisplayValue
{
 get { return string.Format("{0} ({1})", Name, Zip); }
}

或者,如果您无法修改MyObject,请在表示层中创建一个包装器对象(仅用于显示).这也可以使用一些LINQ来完成:

List myList = getObjects();
ddList.DataSource = (from obj in myList
                    select new
                    {
                      Id = obj.Id,
                      Name = string.Format("{0} ({1})", obj.Name, obj.Zip)
                    }).ToList();
ddList.DataValueField = "Id";
ddList.DataTextField = "Name";
ddList.DataBind();

(抱歉,我没有Visual Studio,因此代码中可能存在错误)

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有