我在页面中有一个下拉列表。所有列表项的值=“0”。我关闭了viewstate。当页面回发时,无论列表中的选择如何,所选索引在Page_load事件中始终= 1。如果列表项的值不同,则selectedIndex具有适当的值。这是正常行为吗?
答案 0 :(得分:2)
是。这些值用于指示所选项目在回发时的内容。如果您的所有项目具有相同的值,则它会找到与该值匹配的第一个项目,因此SelectedIndex = 1.
练习建议在值字段中使用ID。
答案 1 :(得分:1)
如果下拉列表成为HTML选择列表,则是,浏览器会提交每个选项的value属性,因此如果它们全部相同,您将始终获得相同的值。
答案 2 :(得分:0)
嗯,差不多。 selectedIndex告诉您哪个选项具有回发的值。由于所有值都相同,浏览器可以选择它喜欢的任何选项,这将是正确的。 'interesting'属性是值,而不是选项的文本。
答案 3 :(得分:0)
这是预期的行为。 HTML SELECT元素仅发送回值而不是文本。如果所有OPTION具有相同的值,那么看起来每个OPTION都会被选中,所以ASP.Net会选择第一个。
如果您不使用该值,则可以省略它,它将与文本相同。或者您可以显式设置与文本相同的值。另一种方法是使用列表项的索引作为值。但除非您使用不同的值(在HTML中呈现),否则下拉列表或多或少无用。