gpt4 book ai didi

c# - 由属性组成的下拉列表 DataTextField?

转载 作者:可可西里 更新时间:2023-11-01 08:53:59 30 4
gpt4 key购买 nike

有没有办法通过 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<MyObject> myList = getObjects();
ddList.DataSource = myList;
ddList.DataValueField = "Id";
ddList.DataTextField = "Name";
ddList.DataBind();
}

我想要例如不要使用“名称”,而是使用“名称( zip )”,例如。

当然,我可以更改 MyObject 类,但我不想这样做(因为 MyObject 类在模型类中,不应该在 UI 中执行我需要的操作)。

最佳答案

向 MyObject 类添加另一个属性并绑定(bind)到该属性:

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

或者如果你不能修改MyObject,在表现层创建一个包装对象(只是为了显示)。这也可以使用一些 LINQ 来完成:

List<MyObject> 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,因此代码中可能存在错误)

关于c# - 由属性组成的下拉列表 DataTextField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/409648/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com