【问题标题】:DropDownList SelectedIndex always = 1DropDownList SelectedIndex 始终 = 1
【发布时间】:2008-12-17 21:55:09
【问题描述】:

我在页面中有一个下拉列表。所有列表项的值 =“0”。我关闭了视图状态。当页面回发时,无论列表中的选择如何,在 Page_load 事件中选择的索引始终 = 1。如果列表项的值不同,则 selectedIndex 具有正确的值。这是正常行为吗?

【问题讨论】:

  • 你能添加列表的代码吗?可能更容易看到发生了什么

标签: asp.net


【解决方案1】:

是的。这些值用于指示回发时所选项目的内容。如果您的所有项目都具有相同的值,那么它会找到与该值匹配的第一个项目,因此 SelectedIndex = 1。

实践建议在值字段中使用 ID。

【讨论】:

    【解决方案2】:

    如果 dropdownlist 变成 HTML Select List,那么是的,浏览器提交每个选项的 value 属性,因此如果它们都相同,你将始终得到相同的值。

    【讨论】:

      【解决方案3】:

      嗯,差不多。 selectedIndex 告诉您哪个选项具有回发的值。由于所有的值都是相同的,浏览器可以选择它喜欢的任何选项,这将是正确的。 'interesting' 属性是值,而不是选项的文本。

      【讨论】:

        【解决方案4】:

        这是预期的行为。 HTML SELECT 元素只发回值,而不是文本。如果所有 OPTION 的值都相同,那么看起来每个选项都被选中,因此 ASP.Net 选择第一个。

        如果不使用该值,可以省略它,它将与文本相同。或者您可以显式设置与文本相同的值。另一种选择是使用列表项的索引作为值。但除非您使用不同的值(如 HTML 中呈现的那样),否则下拉列表或多或少是无用的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多