1、外文翻译 英文文献 使用两个dropdownlist过滤的主从报表大学毕设论文Master/Detail Filtering With Two DropDownListsIntroductionIn the previous tutorial we examined how to display a simple master/details report using a single DropDownList populated with the categories and a GridView showing those products that belong to the selec
2、ted category. This report pattern works well when displaying records that have a one-to-many relationship and can easily be extended to work for scenarios that include multiple one-to-many relationships. For example, an order entry system would have tables that correspond to customers, orders, and o
3、rder line items. A given customer may have multiple orders with each order consisting of multiple items. Such data can be presented to the user with two DropDownLists and a GridView. The first DropDownList would have a list item for each customer in the database with the second ones contents being t
4、he orders placed by the selected customer. A GridView would list the line items from the selected order.While the Northwind database include the canonical customer/order/order details information in its Customers, Orders, and Order Details tables, these tables arent captured in our architecture. Non
5、etheless, we can still illustrate using two dependent DropDownLists. The first DropDownList will list the categories and the second the products belonging to the selected category. A DetailsView will then list the details of the selected product.Step 1: Creating and Populating the Categories DropDow
6、nListOur first goal is to add the DropDownList that lists the categories. These steps were examined in detail in the preceding tutorial, but are summarized here for completeness. Open the MasterDetailsDetails.aspx page in the Filtering folder, add a DropDownList to the page, set its ID property to C
7、ategories, and then click the Configure Data Source link in its smart tag. From the Data Source Configuration Wizard choose to add a new data source.Figure 1: Add a New Data Source for the DropDownList (Click to view full-size image)The new data source should, naturally, be an ObjectDataSource. Name
8、 this new ObjectDataSource CategoriesDataSource and have it invoke the CategoriesBLL objects GetCategories() method.Figure 2: Choose to Use the CategoriesBLL Class (Click to view full-size image)Figure 3: Configure the ObjectDataSource to Use the GetCategories() Method (Click to view full-size image
9、)After configuring the ObjectDataSource we still need to specify which data source field should be displayed in the Categories DropDownList and which one should be configured as the value for the list item. Set the CategoryName field as the display and CategoryID as the value for each list item.Figu
10、re 4: Have the DropDownList Display the CategoryName Field and Use CategoryID as the Value (Click to view full-size image)At this point we have a DropDownList control (Categories) thats populated with the records from the Categories table. When the user chooses a new category from the DropDownList w
11、ell want a postback to occur in order to refresh the product DropDownList that were going to create in Step 2. Therefore, check the Enable AutoPostBack option from the categories DropDownLists smart tag.Figure 5: Enable AutoPostBack for the Categories DropDownList (Click to view full-size image)Step
12、 2: Displaying the Selected Categorys Products in a Second DropDownListWith the Categories DropDownList completed, our next step is to display a DropDownList of products belonging to the selected category. To accomplish this, add another DropDownList to the page named ProductsByCategory. As with the
13、 Categories DropDownList, create a new ObjectDataSource for the ProductsByCategory DropDownList named ProductsByCategoryDataSource.Figure 6: Add a New Data Source for the ProductsByCategory DropDownList (Click to view full-size image)Figure 7: Create a New ObjectDataSource Named ProductsByCategoryDa
14、taSource (Click to view full-size image)Since the ProductsByCategory DropDownList needs to display just those products belonging to the selected category, have the ObjectDataSource invoke the GetProductsByCategoryID(categoryID) method from the ProductsBLL object.Figure 8: Choose to Use the ProductsB
15、LL Class (Click to view full-size image)Figure 9: Configure the ObjectDataSource to Use the GetProductsByCategoryID(categoryID) Method (Click to view full-size image)In the final step of the wizard we need to specify the value of the categoryID parameter. Assign this parameter to the selected item f
16、rom the Categories DropDownList.Figure 10: Pull the categoryID Parameter Value from the Categories DropDownList (Click to view full-size image)With the ObjectDataSource configured, all that remains is to specify what data source fields are used for the display and value of the DropDownLists items. D
17、isplay the ProductName field and use the ProductID field as the value.Figure 11: Specify the Data Source Fields Used for the DropDownLists ListItems Text and Value Properties (Click to view full-size image)With the ObjectDataSource and ProductsByCategory DropDownList configured our page will display
18、 two DropDownLists: the first will list all of the categories while the second will list those products belonging to the selected category. When the user selects a new category from the first DropDownList, a postback will ensue and the second DropDownList will be rebound, showing those products that
19、 belong to the newly selected category. Figures 12 and 13 show MasterDetailsDetails.aspx in action when viewed through a browser.Figure 12: When First Visiting the Page, the Beverages Category is Selected (Click to view full-size image)Figure 13: Choosing a Different Category Displays the New Catego
20、rys Products (Click to view full-size image)Currently the productsByCategory DropDownList, when changed, does not cause a postback. However, we will want a postback to occur once we add a DetailsView to display the selected products details (Step 3). Therefore, check the Enable AutoPostBack checkbox
21、 from the productsByCategory DropDownLists smart tag.Figure 14: Enable the AutoPostBack Feature for the productsByCategory DropDownList (Click to view full-size image)Step 3: Using a DetailsView to Display Details for the Selected ProductThe final step is to display the details for the selected prod
22、uct in a DetailsView. To accomplish this, add a DetailsView to the page, set its ID property to ProductDetails, and create a new ObjectDataSource for it. Configure this ObjectDataSource to pull its data from the ProductsBLL classs GetProductByProductID(productID) method using the selected value of t
23、he ProductsByCategory DropDownList for the value of the productID parameter.Figure 15: Choose to Use the ProductsBLL Class (Click to view full-size image)Figure 16: Configure the ObjectDataSource to Use the GetProductByProductID(productID) Method (Click to view full-size image)Figure 17: Pull the pr
24、oductID Parameter Value from the ProductsByCategory DropDownList (Click to view full-size image)You can choose to display any of the available fields in the DetailsView. Ive opted to remove the ProductID, SupplierID, and CategoryID fields and reordered and formatted the remaining fields. In addition
25、, I cleared out the DetailsViews Height and Width properties, allowing the DetailsView to expand to the width needed to best display its data rather than having it constrained to a specified size. The full markup appears below: Take a moment to try out the MasterDetailsDetails.aspx page in a browser
26、. At first glance it may appear that everything is working as desired, but theres a subtle problem. When you choose a new category the ProductsByCategory DropDownList is updated to include those products for the selected category, but the ProductDetails DetailsView continued to show the previous pro
27、duct information. The DetailsView is updated when choosing a different product for the selected category. Furthermore, if you test thoroughly enough, youll find that if you continually choose new categories (such as choosing Beverages from the Categories DropDownList, then Condiments, then Confectio
28、ns) every other category selection causes the ProductDetails DetailsView to be refreshed.To help concretize this problem, lets look at a specific example. When you first visit the page the Beverages category is selected and the related products are loaded in the ProductsByCategory DropDownList. Chai
29、 is the selected product and its details are displayed in the ProductDetails DetailsView, as shown in Figure 18.Figure 18: The Selected Products Details are Displayed in a DetailsView (Click to view full-size image)If you change the category selection from Beverages to Condiments, a postback occurs and
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1