2012-04-04 78 views
0

我有2个DropDownListboxes。两者都基于SQLDataSource控件。当一个值被改变时,它在另一个上起过滤器的作用。 事件触发正常,我更改SQLDataSource上的筛选器,但第二个DropDownList中的列表不更改。过滤后的ASP.NET请求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 
+0

更新FilterExpression后,您是否在第二个下拉列表中显式调用了DataBind?也就是说,在你的'End If'行之后,添加'Me.DropDownList2.DataBind()' – 2012-04-04 01:00:11

回答

0

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

+0

对不起,我花了这么长时间才回复,我想我会收到一封电子邮件通知的回复。我自己能找到答案。 我能够自己找到答案。我会清除列表,然后再次绑定数据。不清除它会导致新记录被添加到下拉列表中,而不是替换它们。 – 2012-04-05 16:25:03