现在的位置: 首页 > 综合 > 正文

关于ASP.NET控件DropDownList value重复的问题

2013年08月22日 ⁄ 综合 ⁄ 共 582字 ⁄ 字号 评论关闭

转贴:http://www.cnblogs.com/jlzhou/archive/2005/04/28/147037.html

大家都知道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的项,小心处理,避免出错。

抱歉!评论已关闭.