ドロップダウンリストでグリッドビューをフィルタリングしようとしています。私のグリッドビューとドロップダウンリストは、Access データベースによって取り込まれています。私が欲しいのは、サプライヤがドロップダウンリストから選択されたときに、製品のグリッドビューをそのサプライヤ ID を持つものにフィルタリングすることです。
ドロップダウン リストとグリッドビューを設定できますが、サプライヤーを選択しても何も起こりません。
FilterExpression="SupplierID Like '{0}%'" を追加しようとしましたが、System.Int32 および System.String で「Like」操作を実行できませんというエラーが発生します。
これが私のコードです。
<form id="form" runat="server" style="margin:0 auto;">
<asp:DropDownList ID="DropDownList1" runat="server"
DataSourceID="AccessDataSource2" DataTextField="Supplier" DataValueField="ID" AutoPostBack="true" AppendDataBoundItems="true">
<asp:ListItem Text="All" Value="%" />
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource2" runat="server"
DataFile="~/App_Data/Hovden Oil Pricing.accdb"
SelectCommand="SELECT [Supplier], [ID] FROM [Suppliers] ORDER BY [Supplier]">
</asp:AccessDataSource>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" BackColor="White"
DataSourceID="AccessDataSource1">
<Columns>
<asp:BoundField DataField="SupplierID" HeaderText="SupplierID"
SortExpression="SupplierID" />
<asp:BoundField DataField="Product Number" HeaderText="Product Number"
SortExpression="Product Number" />
<asp:BoundField DataField="Product Name" HeaderText="Product Name"
SortExpression="Product Name" />
<asp:BoundField DataField="Product Type" HeaderText="Product Type"
SortExpression="Product Type" />
<asp:CheckBoxField DataField="Bulked" HeaderText="Bulked"
SortExpression="Bulked" />
<asp:BoundField DataField="UOM" HeaderText="UOM" SortExpression="UOM" />
<asp:BoundField DataField="Multiple" HeaderText="Multiple"
SortExpression="Multiple" />
<asp:BoundField DataField="$/GAL" HeaderText="$/GAL" SortExpression="$/GAL" />
<asp:BoundField DataField="$/UNIT" HeaderText="$/UNIT" ReadOnly="True"
SortExpression="$/UNIT" />
<asp:BoundField DataField="TypeID" HeaderText="TypeID"
SortExpression="TypeID" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/Hovden Oil Pricing.accdb" SelectCommand="SELECT [Supplier Products].SupplierID, Products.[Product Number], Products.[Product Name], [Product Types].[Product Type], Products.Bulked, Products.UOM, Products.Multiple, [Bulk Prices].Volume AS [$/GAL], [$/GAL]*[Multiple] AS [$/UNIT], [Product Types].TypeID
FROM [Product Types] INNER JOIN ((Products INNER JOIN [Supplier Products] ON Products.[Product Number] = [Supplier Products].[Product Number]) INNER JOIN [Bulk Prices] ON (Products.[Product Number] = [Bulk Prices].[Product Number]) AND (Products.[Product Number] = [Bulk Prices].[Product Number])) ON [Product Types].TypeID = Products.[Product Type]
WHERE (Products.Bulked)=Yes
ORDER BY Products.[Product Name];" FilterExpression="SupplierID Like '{0}%'">
<FilterParameters>
<asp:ControlParameter Name="SupplierID" ControlID="DropDownList1" PropertyName="SelectedValue" />
</FilterParameters>
</asp:AccessDataSource>
</form>
何か不足していますか?ありがとう。