kar*_*lis 10 c# asp.net data-binding drop-down-menu
有没有办法通过由对象的多个属性组成的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();
}
Run Code Online (Sandbox Code Playgroud)
我想要不要使用"名称",而是"名称(Zip)",例如.
当然,我可以更改MyObject类,但我不想这样做(因为MyObject类在模型类中,不应该在UI中做我需要的东西).
M4N*_*M4N 22
将另一个属性添加到MyObject类并绑定到该属性:
public string DisplayValue
{
get { return string.Format("{0} ({1})", Name, Zip); }
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您无法修改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();
Run Code Online (Sandbox Code Playgroud)
(抱歉,我没有Visual Studio,因此代码中可能存在错误)
| 归档时间: |
|
| 查看次数: |
15265 次 |
| 最近记录: |