Posted on 2005-04-28 16:39
jlzhou 阅读(9832)
评论(13) 编辑 收藏 所属分类:
编程技术区
大家都知道DropDownList的两个重要的属性吧:
SelectedIndex
SelectedValue
通常我们在页面的postback时,读取这两个属性,对用户的选择做出处理。
ASP.NET封装了这两个属性,但是我发现了一个问题:就是在有的时候,SelectedIndex不能返回我们期待的结果!
DropDownList的Items包括ListItem对象,ListItem有Value和Text两个属性,很多时候两者是不同的,
例如,某个DropDownList包含以下选项:
| Value |
Text |
| 0 |
苹果 |
| 1 |
鸭梨 |
| 2 |
香蕉 |
| 3 |
草莓 |
| 4 |
柑橘 |
| 0 |
葡萄 |
| 1 |
木瓜 |
当用户选择
苹果时,在Postback时,SelectedValue的值是:0,SelectedIndex的值是:0
当用户选择
葡萄时,在Postback时,SelectedValue的值是:0,SelectedIndex的值是:还是0!而不是5!
我不知道这是不是算作bug,可能是ASP.NET通过SelectedValue的值来“计算”出SelectedIndex的值,而不是DropDownList真正选中的值。
所以,尽量避免在DropDownList包括相同Value的项,小心处理,避免出错。