有没有办法绑定到ASP.NET ListControl 而不用指定DataTextField
和DataValueField
属性?也许某些类允许ListControl推断哪个属性是文本,哪个属性值?
每次必须指定这些属性会导致过去的拼写错误。我想如果我每次只能绑定到同一个对象类型的集合并完全忽略 field 属性,那将会有所帮助。
答案 0 :(得分:0)
不,没有办法让它自动“推断”这个。
想象一下,你绑定了Person
的集合。 Person类可能有Id, Name, Address, City, State, Zip, Email
,依此类推。 ListBox
课程无法阅读程序员的想法并决定他想分别对Id
和Name
使用Value
和Text
,因为在许多有效的情况下你可能确实需要显示Phone
和Id
。
如果您至少运行一次页面,如果您尝试绑定到不存在的属性,则会立即收到错误,因此这根本不应该成为任何人的问题。< / p>
答案 1 :(得分:0)
如果你想要这样的控件,可以将ListBox
类扩展为默认值。
对分配的数据类型的DataSource
和GetProperties
使用反射。
假设你喜欢默认值;将第一个Property称为键(DataValueField
),将最后一个称为值(DataTextField
)。