【问题标题】:DataTextField from field's property来自字段属性的 DataTextField
【发布时间】:2013-12-03 09:49:52
【问题描述】:

我有类似的课程

public class A
{
    public string name;
}

public class B
{
    public int Id;
    public A obj;
}

然后,我有 ASP.NET WebForms 应用程序和带有 ListBox 控件的页面。

我想将List<B> 设置为ListBox 的数据源。

List<B> list = ...; //fill data
lbx.DataSource = list;
lbx.DataValueField = "Id";
lbx.DataTextField = A.name; //how can I do it?
lbx.DataBind();

所以,我的问题是:如何将 DataTextField 链接到列表中对象的属性?

谢谢!

【问题讨论】:

  • DataTextField 接受一个字符串。
  • 是的,我知道。但是有办法解决我的问题吗?
  • 如果可能,Try B 继承自 A (B : A)

标签: c# asp.net datatextfield


【解决方案1】:

您可以在 B 类中为 Name 创建一个属性。例如

public class B
{
public int Id;
public A obj;
public string Name{ get {return obj.name;}}
}

把它当作 lbx.DataTextField = "Name";

【讨论】:

    【解决方案2】:

    不确定您使用的列表框控件是否支持嵌套属性(我知道一些第三方控件支持),如下所示:

    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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 2012-02-15
      相关资源
      最近更新 更多