在ASP.NET 2.0中操作数据之十五:在GridView的页脚中

  除了需要了解产品的单价、库存量和订货量,并按等级排序之外,用户可能还对统计信息感兴趣,比如说平均价格、库存总量等等。这些统计信息常常显示在报表最下面的一个统计行中。GridView控件可以含有一个页脚行,我们可以通过编程将统计数据插入到它的单元格里面去。这个任务给了我们以下3个挑战:

1.配置GridView以显示它的页脚行

2.确定统计数据。即我们应该如何计算平均价格还有库存总量?

3.将统计信息插入到页脚行的相应的单元格中

  在本节教程中,我们将会看到如何去征服这些挑战。另外呢,我们将创建一个页面,它含有一个列出所有“类别”的下拉框,选择一个“类别”就可以在GridView中显示这个类别的产品。GridView中包含一个页脚行,用于显示此类产品的平均价格、库存总量和订货总量。

/uploads/allimg/200612/1K941EA_0.png

图一:统计信息显示在GridView的页脚行中

  由于含有“类别”到“产品”的主/从界面,所有本节是建立在前面的“使用DropDownList进行主/从过滤”节中所讨论的那些概念的基础上的。如果你还没有看过那一节的话,在继续本节的学习之前,还是去看看比较好。

第一节:添加“类别”下拉框和“产品”GridView

  往GridView中添加页脚行之前,让我们先来简单的建立一个主/从报表。一旦我们完成了这第一步的工作,我们就可以来看看如何加入统计数据了。

  首先打开CustomFormatting文件夹中的SummaryDataInFooter.aspx页面。添加一个DropDownList控件,并将其ID设置为Categories。然后,在这个DropDownList的智能标签上点击“选择数据源(Choose Data Source)”,添加一个新的调用CategoriesBLL类的GetCategories ()方法的ObjectDataSource控件,将这个ObjectDataSource命名为CategoriesDataSource。

/uploads/allimg/200612/1K9415916_0.png

图二:添加一个新的名为CategoriesDataSource的ObjectDataSource控件

/uploads/allimg/200612/1K9459606_0.png

图三:使这个ObjectDataSource控件调用CategoriesBLL类的GetCategories ()方法

  再配置了了ObjectDataSource之后,向导会将我们返回到DropDownList的数据源配置向导那里,在这儿我们可以指定哪个字段需要显示以及哪个字段应该作为DropDownList的ListItem的值。我们将CategoryName字段拿来显示,而把CategoryID拿来作为值。

/uploads/allimg/200612/1K9425540_0.png

图四:分别使用CategoryName和CategoryID来作为ListItem的文本和值

  现在,我们便在系统中有了一个能列出类别的DropDownList了。现在我们需要添加一个根据所选的类别来列出产品的GridView。不过,在此之前,让我们先花点时间到DropDownList的智能标签中勾上“启用自动回发(Enable AutoPostBack)”复选框。我们在前面的“使用DropDownList进行主/从过滤 lidong6”节中讨论过,在将DropDownList的AutoPostBack属性设置为true之后,只要DropDownList的值发生了变化,页面就会回发。这样就可以刷新GridView以显示新选择的类别的产品了。如果AutoPostBack属性设置为false(默认值),改变类别将不会导致回发,因此也就不能刷新产品列表了。

/uploads/allimg/200612/1K9423531_0.png

图五:在DropDownList的智能标签中勾上“启用自动回发”复选框

  添加一个GridView控件到页面上以便可以根据选定的类别来显示产品。将这个GridView的ID设置为ProductsInCategory,并将其绑定到一个新的名为ProductsInCategoryDataSource的ObjectDataSource上。

https://img.jbzj.com/file_images/article/201605/2016050617181983.png

图六:添加一个新的名为ProductsInCategoryDataSource的ObjectDataSource

配置这个ObjectDataSource,以使其调用ProductsBLL类的GetProductsByCategoryID(categoryID)方法。

/uploads/allimg/200612/1K9423955_0.png

图七:使这个ObjectDataSource调用GetProductsByCategoryID(categoryID)方法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjwwpf.html