ASP.NET重新查询过滤器后的DropDownList?

ASP.NET重新查询过滤器后的DropDownList?,asp.net,combobox,reload,Asp.net,Combobox,Reload,我有两个下拉列表框。两者都基于SQLDataSource控件。当一个的值更改时,它充当另一个的过滤器。 事件触发正常,我更改了SQLDataSource上的过滤器,但第二个DropDownList中的列表没有更改 几个小时以来我一直在寻找答案,这让我非常沮丧。看起来应该是一个简单的命令,比如重新查询命令。 下面是有问题的代码 Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As Sy

我有两个下拉列表框。两者都基于SQLDataSource控件。当一个的值更改时,它充当另一个的过滤器。 事件触发正常,我更改了SQLDataSource上的过滤器,但第二个DropDownList中的列表没有更改

几个小时以来我一直在寻找答案,这让我非常沮丧。看起来应该是一个简单的命令,比如重新查询命令。 下面是有问题的代码

Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
If Me.DropDownList1.SelectedValue > 0 Then
Me.SqlDataSource2.FilterExpression = "Arcft_Make_ID = " & Me.DropDownList1.SelectedValue
Else
Me.SqlDataSource2.FilterExpression = ""
End If
End Sub

如果我没有弄错的话,您还没有通过应用FilterExpression做任何事情。您仍然需要再次执行查询。请参阅MSDN文档。顶部的相关点:“获取或设置在调用Select方法时应用的筛选表达式。”。因此,您需要再次调用Select方法。

在更新FilterExpression后,您是否在第二个下拉列表中显式调用了DataBind?i、 例如,在您的
结束If
行之后,添加
Me.DropDownList2.DataBind()
很抱歉,我花了这么长时间才回复,我想我会收到回复的电子邮件通知。我自己能够找到答案。我自己也能找到答案。我会清除列表,然后再次数据绑定它。不清除它会导致新记录被添加到下拉列表中,而不是替换它们。