我有课,就像
public class A
{
public string name;
}
public class B
{
public int Id;
public A obj;
}然后,我有ASP.NET WebForms应用程序和带有ListBox控件的页面。
我想把List<B>设为DataSource of ListBox。
List<B> list = ...; //fill data
lbx.DataSource = list;
lbx.DataValueField = "Id";
lbx.DataTextField = A.name; //how can I do it?
lbx.DataBind();因此,我的问题是:如何将DataTextField链接到列表中对象的属性?
谢谢!
发布于 2013-12-03 09:56:22
您可以在B类中为名称创建一个属性。例如
public class B
{
public int Id;
public A obj;
public string Name{ get {return obj.name;}}
}使用它作为lbx.DataTextField = "Name";
发布于 2013-12-03 10:00:21
不确定您使用的listbox控件是否支持嵌套属性(我知道某些第三方控件会这样做),如下所示:
lbx.DataTextField = "obj.name"如果它不支持,那么将A的嵌套属性包装到B的另一个只读属性中:
public class B
{
public int Id;
public A obj;
public string NameOfA
{
Get{return obj.name;}
}
}然后:
lbx.DataTextField = "NameOfA"https://stackoverflow.com/questions/20347713
复制相似问题