我有一个包含用户的列表框。数据源是用户类型的通用列表(包含,id,firstname,lastname,...)。现在我想将 id 用作数据值(通过 dataValueField),并且我想要 LastName + ' ' + Firstname 作为 DataTextField。
谁能告诉我这怎么可能?
我正在使用 C# (ASP.NET)。
我有一个包含用户的列表框。数据源是用户类型的通用列表(包含,id,firstname,lastname,...)。现在我想将 id 用作数据值(通过 dataValueField),并且我想要 LastName + ' ' + Firstname 作为 DataTextField。
谁能告诉我这怎么可能?
我正在使用 C# (ASP.NET)。
最简单的方法是向包含全名的 User 类添加一个新属性:
public string FullName
{
get { return LastName + " " + FirstName; }
}
并将列表框绑定到那个。
这具有集中构建全名背后的逻辑的优势,因此您可以在网站的多个位置使用它,如果您需要更改它(例如,更改为 Firstname + " " + Lastname),您只需要做在一个地方。
如果更改类不是一个选项,您可以创建一个包装类:
public class UserPresenter
{
private User _user;
public int Id
{
get { return _user.Id; }
}
public string FullName
{
get { return _user.LastName + " " + _user.Firstname; }
}
}
或者挂钩 itemdatabound 事件(可能在那里的名称错误)并直接更改列表框项。
list.DataTextField = string.Format("{0}, {1}", LastName, Firstname);
如果您在其他地方使用它,您还可以将 DisplayName 属性添加到返回相同内容的 User 类。