我有一个列出大约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.CssClass
或ddl.Visible
。
答案 0 :(得分:0)
viewstate(因为它出现在pageload之后)覆盖了我的控件。因此,设置页面EnableViewState="false"
可以解决问题。