Vb.net 单击更改过滤器表达式

Vb.net 单击更改过滤器表达式,vb.net,Vb.net,如果在dropdownlist中选择了某个项目,并且用户单击了该按钮,我想更改过滤器表达式 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click If DropDownList1.SelectedItem.Text = "JOANNEP" Or DropDownList1.SelectedItem.Text = "ANAB" T

如果在dropdownlist中选择了某个项目,并且用户单击了该按钮,我想更改过滤器表达式

 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        If DropDownList1.SelectedItem.Text = "JOANNEP" Or DropDownList1.SelectedItem.Text = "ANAB" Then
            SqlDataSource1.FilterExpression = "byyyy <> 2009"
        Else
            SqlDataSource1.FilterExpression = Nothing
        End If
        UpdatePanel1.Update()
    End Sub
Protected Sub Button1\u Click(ByVal sender作为对象,ByVal e作为System.EventArgs)处理按钮1。单击
如果DropDownList1.SelectedItem.Text=“JOANNEP”或DropDownList1.SelectedItem.Text=“ANAB”,则
SqlDataSource1.FilterExpression=“byyyy 2009”
其他的
SqlDataSource1.FilterExpression=Nothing
如果结束
UpdatePanel1.Update()
端接头

我尝试过,但是我的gridview仍然显示yyy年,包括2009年

尝试在
If Else EndIf
块后调用
gridView1.DataBind()

编辑:只是猜测,但试试这个

SqlDataSource1.FilterExpression = "byyyy <> {0}"
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add("byyyy", "2009")
SqlDataSource1.filtereexpression=“byyyy{0}”
SqlDataSource1.FilterParameters.Clear();
SqlDataSource1.FilterParameters.Add(“byyyy”,“2009”)

还是什么都没有,当我将过滤器直接放入sqldatasource:/still nothing:/this应该是simpleok,所以我认为问题在于它没有正确读取dropdownlist名称,因为如果我按照你在else语句中所说的那样做,它会works@bugz尝试设置断点并查看下拉列表的SelectedItem.Text事实上是的。我只是暂时把它作为索引,这很糟糕,因为如果我添加一个新员工,它会崩溃:(