这让我很生气...我有两个动态创建的asp下拉框,品牌和型号。当用户选择品牌时,它会调用名为makeChanged的ASP按钮。当makeChanged运行时,它应该清除模型下拉列表中的项目,然后创建新项目。所以处理makeChanged按钮的代码如下:
Sub makeChanged (ByVal sender As Object, ByVal e As System.EventArgs)
Dim thingID = sender.ID.split("_")(1)
Dim modelDD As DropDownList = thingsContainer.FindControl("model_" & thingID )
modelDD.EnableViewState = False
modelDD.Items.Clear()
modelDD.SelectedValue = -1
modelDD.AppendDataBoundItems = True
Dim select_qry = "select * from Models where makeid=" & sender.SelectedValue
Dim objData2 As SqlDataReader = getSqlQueryObj(select_qry)
modelDD.DataSource = objData2
modelDD.DataValueField = "models"
modelDD.DataTextField = "models"
modelDD.DataBind() 'This is where the error is getting triggered from
End Sub
我知道查询或查找下拉列表没有任何问题,因为我已经运行了许多response.write,并且它返回了预期的结果。我认为这可能是因为viewState保留了索引更改后的旧值,然后尝试将其添加到列表中,然后我使用DB中的新值重新填充列表但是我关闭了viewState来检查这个它仍然没有什么区别:|。
任何帮助表示赞赏! 谢谢!
答案 0 :(得分:0)
您已将SelectedValue
设置为必须存在的-1
。不要将其与SelectedIndex
混淆,-1
表示不应选择任何内容。
所以我假设你真的想要:
' ...
modelDD.Items.Clear()
modelDD.SelectedIndex = -1 ' instead of SelectedValue = -1
' ...