各位:小弟是初学者,现在要用多个dropdownlist进行条件筛选,不用Button,用autopostback=true
这是我的2个dropdownlist代码,用多个dropdownlist应该用什么方法?
Protected Sub DrListedp_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DrListedp.SelectedIndexChanged
Dim conn1 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("~/data/pers.mdb"))
Dim sql As String
conn1.Open()
sql = "select * from base where 1=1"
If (DrListedp.SelectedValue <> "all") Then
sql += "and b_dep='" & DrListedp.SelectedValue & "'" If (DrListsex.SelectedValue <> "all") Then
sql += "and b_sex='" & DrListsex.SelectedValue & "'"
End If
Else
If (DrListsex.SelectedValue <> "all") Then
sql += "and b_sex='" & DrListsex.SelectedValue & "'"
End If
End If
AccessDataSource1.SelectCommand = sql
GridView1.DataSource = AccessDataSource1.Select(DataSourceSelectArguments.Empty)
GridView1.DataBind()
End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim conn1 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("~/data/pers.mdb"))
Dim sql As String
conn1.Open()
sql = "select * from base"
AccessDataSource1.SelectCommand = sql
conn1.Close()
GridView1.DataSource = AccessDataSource1.Select(DataSourceSelectArguments.Empty)
GridView1.DataBind() End Sub
Protected Sub DrListsex_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DrListsex.SelectedIndexChanged
Dim conn1 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("~/data/pers.mdb"))
Dim sql As String
conn1.Open()
sql = "select * from base where 1=1"
If (DrListsex.SelectedValue <> "all") Then
sql += "and b_sex='" & DrListsex.SelectedValue & "'" If (DrListedp.SelectedValue <> "all") Then
sql += "and b_dep='" & DrListedp.SelectedValue & "'"
End If
End If
AccessDataSource1.SelectCommand = sql
GridView1.DataSource = AccessDataSource1.Select(DataSourceSelectArguments.Empty)
GridView1.DataBind() End Sub
End Class
这是我的2个dropdownlist代码,用多个dropdownlist应该用什么方法?
Protected Sub DrListedp_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DrListedp.SelectedIndexChanged
Dim conn1 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("~/data/pers.mdb"))
Dim sql As String
conn1.Open()
sql = "select * from base where 1=1"
If (DrListedp.SelectedValue <> "all") Then
sql += "and b_dep='" & DrListedp.SelectedValue & "'" If (DrListsex.SelectedValue <> "all") Then
sql += "and b_sex='" & DrListsex.SelectedValue & "'"
End If
Else
If (DrListsex.SelectedValue <> "all") Then
sql += "and b_sex='" & DrListsex.SelectedValue & "'"
End If
End If
AccessDataSource1.SelectCommand = sql
GridView1.DataSource = AccessDataSource1.Select(DataSourceSelectArguments.Empty)
GridView1.DataBind()
End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim conn1 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("~/data/pers.mdb"))
Dim sql As String
conn1.Open()
sql = "select * from base"
AccessDataSource1.SelectCommand = sql
conn1.Close()
GridView1.DataSource = AccessDataSource1.Select(DataSourceSelectArguments.Empty)
GridView1.DataBind() End Sub
Protected Sub DrListsex_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DrListsex.SelectedIndexChanged
Dim conn1 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("~/data/pers.mdb"))
Dim sql As String
conn1.Open()
sql = "select * from base where 1=1"
If (DrListsex.SelectedValue <> "all") Then
sql += "and b_sex='" & DrListsex.SelectedValue & "'" If (DrListedp.SelectedValue <> "all") Then
sql += "and b_dep='" & DrListedp.SelectedValue & "'"
End If
End If
AccessDataSource1.SelectCommand = sql
GridView1.DataSource = AccessDataSource1.Select(DataSourceSelectArguments.Empty)
GridView1.DataBind() End Sub
End Class
如果需要联动,恩,貌似dropdownlist联动的代码四处可见
page_load要加if not ispostback,才不会每次都重新绑定多个dropdownlist和一个,其实差不多,就是每个dropdownlist的SelectedIndexChanged都要判断所有的dropdownlist是什么状态,把各个条件拼齐,别漏了就行了
sp1234兄建议用button,不过最多2,3人用,可以不用考虑服务器负担,用autopostback方便一些
可以写一个方法,在每次SelectedIndexChanged时遍历一下各个DropDownList,取得所有选中值添加到HashTable里,再构造SQL语句,不知道这样会不会方便一点!~~