在此我選擇一個符合ASP.NET風格的作法:
- 建立2個DropDownList物件,分別表示Category與Product
- 建立2個SqlDataSource,分別作為Category與Product的DropDownList的資料來源
- 在Product的SqlDataSource上設定參數,以依照Category的DropDownList所選取的項目值作為Sql篩選資料的條件。大致如下:
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Product] WHERE ([categoryid] = @categoryid)"> <SelectParameters> <asp:ControlParameter ControlID="DropDownList1" Name="categoryid" PropertyName="SelectedValue" Type="Int32" /> </SelectParameters></asp:SqlDataSource>
- 最後一點,記得將Category的DropDownList的AutoPostBack屬性設為true,如此在變更值時,才會將變頁面Post回伺服器,在依選取的值,重新篩選Product的DropDownList所對應SqlDataSource中的資料。
當然,在範例中有個Database.mdf資料庫,其中包含Category與Product資料,1個Category可擁有多個Product,而1個Product可分類至1個Category。
Facebook留言板: