從ListControl
派生的列表控件,例如DropDownList
,ListBox
或RadioButtonList
,由列表ListItem
s填充。 A ListItem
有一個Value
和Text
屬性。ASP.NET:爲什麼ListControl.Text返回所選ListItem的*值*而不是*文本*?
ListControl
提供了以下方法來訪問當前所選的項目:
ListControl.SelectedItem
返回當前選擇的ListItem
,ListControl.SelectedValue
返回當前選擇的ListItem
的Value
財產。現在
,有趣的是:
ListControl.Text
恰好返回相同的值ListControl.SelectedValue
。它確實是而不是返回SelectedItem.Text
,正如人們所期望的那樣。
這是by design:
ListControl.Text物業
獲取或設置列表控件控制的SelectedValue屬性。
[...]
備註
Text屬性獲取和設置的SelectedValue屬性不相同的值。
這似乎違反直覺和confuses people。我的問題是:爲什麼這樣做?我可以想象,提供Text
屬性對於實現ITextControl
接口是必要的,但爲什麼您選擇返回ListItem的Value
而不是Text
?