绑定到ListControl而不指定DataTextField和DataValueField?

时间:2012-08-24 18:23:35

标签: asp.net data-binding

有没有办法绑定到ASP.NET ListControl 而不用指定DataTextFieldDataValueField属性?也许某些类允许ListControl推断哪个属性是文本,哪个属性值?

每次必须指定这些属性会导致过去的拼写错误。我想如果我每次只能绑定到同一个对象类型的集合并完全忽略 field 属性,那将会有所帮助。

2 个答案:

答案 0 :(得分:0)

不,没有办法让它自动“推断”这个。

想象一下,你绑定了Person的集合。 Person类可能有Id, Name, Address, City, State, Zip, Email,依此类推。 ListBox课程无法阅读程序员的想法并决定他想分别对IdName使用ValueText,因为在许多有效的情况下你可能确实需要显示PhoneId

如果您至少运行一次页面,如果您尝试绑定到不存在的属性,则会立即收到错误,因此这根本不应该成为任何人的问题。< / p>

答案 1 :(得分:0)

如果你想要这样的控件,可以将ListBox类扩展为默认值。

对分配的数据类型的DataSourceGetProperties使用反射。 假设你喜欢默认值;将第一个Property称为键(DataValueField),将最后一个称为值(DataTextField)。