我正在为我的项目创建一些实体(类),我想为它设置一个默认的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
不是正确的属性?
答案 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;
}
}