从类属性获取绑定值,DefaultBindingProperty对我不起作用!

时间:2009-11-11 10:02:30

标签: c# asp.net data-binding class attributes

我正在为我的项目创建一些实体(类),我想为它设置一个默认的binging属性,这是一个例子

namespace MyNamespace
{
    [System.ComponentModel.DefaultBindingProperty("Name")]
    public class Person
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public int Gender { get; set; }
    }

    public class Family
    {
        public int ID { get; set; }
        public Person Father { get; set; }
    }
}

如果我有List<Family>并希望将其绑定到GridView并添加此字段<asp:BoundField DataField="Father" />,则结果将为MyNamespace.Person但我需要它来填充属性{{1}的值1}}没有使用Name所以我错过了什么?或TemplateField不是正确的属性?

1 个答案:

答案 0 :(得分:2)

问题是属性Father属于Person类型。 Person值没有明显的字符串表示形式,因此显示了该类型的名称。尝试覆盖ToString方法以显示您想要的内容:

public class Person
{
    public int ID { get; set; }
    public string Name { get; set; }
    public int Gender { get; set; }
    public override string ToString()
    {
        return Name;
    }
}