有沒有辦法綁定到ASP.NET ListControl 沒有指定DataTextField
和DataValueField
屬性?也許有些類允許ListControl推斷哪些屬性是文本和哪個值?綁定到ListControl而不指定DataTextField和DataValueField?
每次指定這些屬性都會導致過去的錯字。我認爲如果每次只能綁定到相同對象類型的集合並完全忽略字段屬性,將會有所幫助。
有沒有辦法綁定到ASP.NET ListControl 沒有指定DataTextField
和DataValueField
屬性?也許有些類允許ListControl推斷哪些屬性是文本和哪個值?綁定到ListControl而不指定DataTextField和DataValueField?
每次指定這些屬性都會導致過去的錯字。我認爲如果每次只能綁定到相同對象類型的集合並完全忽略字段屬性,將會有所幫助。
如果您確實需要這樣的控件,您可以將ListBox
類擴展爲默認值。
在分配的數據類型的DataSource
和GetProperties
上使用反射。 假設你喜歡默認值;說第一個屬性爲關鍵(DataValueField
),最後爲值(DataTextField
)。
不,沒有辦法讓它自動「推斷」它。
想象一下,你綁定到一個集合Person
。 Person類可能有Id, Name, Address, City, State, Zip, Email
,依此類推。該ListBox
類無法讀取程序員的主意,決定,他希望真正使用Id
和Name
爲Value
和Text
分別因爲在許多情況下有效,你可能真的需要顯示Phone
和Id
代替。
如果您至少一次運行頁面如果您嘗試綁定到不存在的屬性,您將立即收到錯誤,因此這對任何人都不是問題。