【问题标题】:Drop Down List SelectedValue not working下拉列表 SelectedValue 不起作用
【发布时间】:2015-08-26 19:37:01
【问题描述】:

我有一个页面列出了大约 10-50 个 DDL。它们都是动态创建和填充的。这些 DDL 有不同的集合。页面顶部有一个 DDL 和提交按钮,用于使用新选择的集合更新所有 DDL。

根据用户交互,某些 DDL 可以具有预设的选定值。 这些是从 SQL 中提取并应用的。这在第一次选择 DDL 集时可以正常工作。但是当我选择一个新的 DDL 集时,即使给出的值是正确的,所选值也不正确(见图)。

代码:

注意:每个 ddl 都有不同的 ID(未显示)

If displayArray.Count = 1 Then
      ddl.Enabled = False
      ddl.Items.Add(New ListItem("Please use manuel entry", -1))
Else
      ddl.Enabled = True
      ' Add default selection
      ddl.Items.Add(New ListItem("Not Assigned", -1))
      For Each item In displayArray
          ddl.Items.Add(New ListItem(displayArray(count), valueArray(count)))
      count += 1
   Next
End If

If preSelReviewer <> -1 Then
      ddl.SelectedValue = preSelReviewer
    Else
      ddl.SelectedValue = -1
End If

一般情况下,如果我选择了第一个 DDL 被禁用的集合,然后更改为没有禁用 DDL 的集合,则第一个 DDL ddl.SelectedValue 不应用(即使当我单步执行代码时) .

我知道这与ddl.Enabled 有关,因为我删除的那一刻一切正常。

编辑

每当我更改特定 DDL 上的某些内容时,这似乎都会发生。如: ddl.CssClassddl.Visible

【问题讨论】:

  • 你试过用.SelectedIndex代替.SelectedValue吗?您可以在填充 DDL 时找出要选择的索引。
  • 是的,同样的问题。我认为问题出在我使用 ID 更新某些内容时。即使 ID 不同,它似乎也会更新其他下拉列表。

标签: asp.net vb.net


【解决方案1】:

我要检查的第一件事是,您尝试为 DDL 设置的值确实在您的数据集中。不能为 DDL 分配在其集合中不存在的值;这与组合框的“下拉”变体的行为相反。 (据我所知,这实际上不是问题)

接下来,您要确保没有覆盖 DDL.SelectedValue 的事件。

如果前两件事检查出来,我会尝试使用 DDL.Text,只是因为我发现在设置 ComboBox 的试验中更一致。这可能不是最佳实践,但我没有遇到任何关于 .Text 的问题,我在设置 SelectedValue 时看到了一些奇怪的事情。话虽如此,如果我填充变量,我将使用 SelectedValue over Text。

我希望我没有在这里完全错过重点。

【讨论】:

    【解决方案2】:

    视图状态(因为它是在页面加载之后出现的)覆盖了我的控件。因此设置页面EnableViewState="false" 解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多