Hjælp til FilterExpression
Hej AlleNu er den næsten på plads med mine dropdownlister, men jeg skal lige have lidt hjælp til min FilterExpression.
Jeg har 2 dropdownlister, som henter filterværdier fra en database. De fundne værdier vises når man trykker på en filtreringsknap. Problemet er, at jeg gerne ville have dropdownlisterne både til at fungere uafhængigt og sammen. Det vil sige, at hvis man vælger en værdi i første dropdown og lader anden dropdown urørt og trykker på knappen, findes værdier der matcher første del af min FilterExpression. Lader man værdien fra før stå i første dropdown stå og vælger en værdi fra anden dropdown og trykker på knappen findes værdier inden for angivne parametrer - dvs. ud fra begge udsagn i min FilterExpression...er det forståligt?!? Denne funktion løser min nuværende FilterExpression ikke. Hvordan laver jeg det om?
Min kode ser ud som følger:
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<br />
<strong>Country City</strong><br />
<asp:DropDownList runat="server" id="CountryListBox" AppendDataBoundItems="True"
DataSourceID="CountrySqlDataSource"
DataTextField="Country" DataValueField="Country" >
<asp:ListItem Selected="True" Value="" >(Show All)</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList runat="server" id="CityListBox" AppendDataBoundItems="True"
DataSourceID="CitySqlDataSource"
DataTextField="City" DataValueField="City" >
<asp:ListItem Selected="True" Value="" >(Show All)</asp:ListItem>
</asp:DropDownList>
<asp:Button runat="server" id="FilterButton" Text="Filter Results" /><br />
<br />
<asp:GridView ID="EmployeesGridView"
DataSourceID="EmployeeDetailsSqlDataSource"
AutoGenerateColumns="False"
AllowSort="True"
RunAt="server" Width="800px" CaptionAlign="Left" HorizontalAlign="Left">
<HeaderStyle backcolor="Navy" forecolor="White"/>
<RowStyle backcolor="White"/>
<AlternatingRowStyle backcolor="LightGray"/>
<EditRowStyle backcolor="LightCyan"/>
<Columns>
<asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" InsertVisible="False"
ReadOnly="True" SortExpression="EmployeeID" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
<asp:BoundField DataField="Country" HeaderText="Country" SortExpression="Country" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="CountrySqlDataSource"
SelectCommand="SELECT DISTINCT Country FROM Employees"
EnableCaching="True"
CacheDuration="60"
ConnectionString="<%$ ConnectionStrings:NORTHWINDConnectionString %>"
RunAt="server" ProviderName="<%$ ConnectionStrings:NORTHWINDConnectionString.ProviderName %>" />
<asp:SqlDataSource ID="CitySqlDataSource"
SelectCommand="SELECT DISTINCT City FROM Employees"
EnableCaching="True"
CacheDuration="60"
ConnectionString="<%$ ConnectionStrings:NORTHWINDConnectionString %>"
RunAt="server" ProviderName="<%$ ConnectionStrings:NORTHWINDConnectionString.ProviderName %>" />
<asp:SqlDataSource ID="EmployeeDetailsSqlDataSource"
SelectCommand="SELECT [EmployeeID], [LastName], [FirstName], [Country], [City] FROM [Employees]"
EnableCaching="True"
CacheDuration="60"
ConnectionString="<%$ ConnectionStrings:NORTHWINDConnectionString %>"
FilterExpression="Country LIKE '{0}' AND City LIKE '{1}'"
RunAt="server" ProviderName="<%$ ConnectionStrings:NORTHWINDConnectionString.ProviderName %>">
<FilterParameters>
<asp:ControlParameter ControlID="CountryListBox" PropertyName="SelectedValue" />
<asp:ControlParameter ControlID="CityListBox" PropertyName="SelectedValue" />
</FilterParameters>
</asp:SqlDataSource>
</div>
</form>
</body>
</html>