ASP.NET 2.0中的数据操作之七:使用DropDownList过滤的
导言
在Web应用程序开发中,主从报表的应用场景非常广泛。它通常用于展示一对多的关系数据,如产品类别与产品详情的关系。想象一下,我们有一个展示所有产品类别的报表,用户可以选择某个特定的类别,然后查看与该类别相关的产品详情。这种结构对于展示具有多个相关字段的“宽”表也非常有用。比如,一个产品的主记录可以包含名称和单价,而具体的产品详情则包括类别、供应商、单位数量等。
步骤一:在DropDownList中显示类别
我们的主从报表设计首先是在DropDownList中列出类别,根据用户选择的列表项在GridView中显示相关的产品信息。那么,我们的第一步就是在DropDownList中展示这些类别。
打开Filtering文件夹中的FilterByDropDownList.aspx页面,从工具箱拖放一个DropDownList控件到页面上,并将其ID属性设置为Categories。接下来,单击“DropDownList 任务”上的“选择数据源”链接,这将启动“选择数据源”向导。
图1: 指定DropDownList控件的数据源
在这里,我们需要添加一个数据源控件,命名为CategoriesDataSource。这个数据源控件将调用CategoriesBLL类的GetCategories()方法。
图2: 添加一个数据源控件并命名为CategoriesDataSource
在图3中,我们选择使用CategoriesBLL类作为数据源。
图3: 选择使用CategoriesBLL类
在图4中,我们配置数据源控件使用GetCategories()方法获取类别数据。
配置完ObjectDataSource后,我们还需要指定在DropDownList中要显示的数据字段以及作为数据项值的字段。在这里,我们选择CategoryName作为要显示的列,CategoryID作为数据项的值字段。这样,当用户看到DropDownList时,他们会看到CategoryName,但实际上是CategoryID作为选中值被传递和处理。
创建基于DropDownList的主从报表:以类别和产品为例
让我们构建一个基于DropDownList的主从报表,用以展示不同类别下的产品。我们有一个包含各类别的DropDownList控件,用于用户选择感兴趣的类别。一旦用户做出选择,相关联的产品就会在GridView控件中显示出来。
在选择GetProductsByCategoryID(categoryID)方法后(如图7所示),我们需要为该方法定义categoryID参数的值。这个值将来源于categories DropDownList的选择。通过设置参数源为Control,并设置ControlID为Categories(如图8所示),我们可以实现这一功能。
首次访问页面时,默认显示属于所选类别(如Beverages)的产品(如图9所示)。当改变DropDownList的选择时,产品数据并不会自动更新。为了解决这个问题,我们需要引发一次回发(postback)。有两种方法可以实现这一点,而无需编写任何代码。
第一种方法是设置categories的AutoPostBack属性为True(在DropDownList的智能标签上启用AutoPostBack选项)。这样,只要用户更改DropDownList的选择,就会引发一次回发。当用户选择一个新的类别时,GridView将更新显示该类别下的产品(在本教程中我们使用此方法)。
第二种方法是在DropDownList后面添加一个按钮控件,设置其Text属性为“刷新”或类似的文本。用户选择新类别后,单击该按钮将引发一次回发并更新GridView以显示所选类别的产品。图9和图10展示了运行后的主从报表的效果。
为了使界面更加友好,我们可以为DropDownList添加一个默认选择项,如“—选择类别--”。通过单击Items属性的省略号图标,为DropDownList增加一个新的数据项,并设置Text为“—选择类别--”,Value为-1(如图11所示)。
除了手动添加数据项,我们还可以使用标记性语言(markup)来添加。在设置完DropDownList控件的AppendDataBoundItems属性为True后(如图12所示),我们可以添加如下代码:
这样,第一次访问页面时,“—选择类别--”数据项将被选中,并且不会显示任何产品(如图13所示)。如果没有显示产品,那是因为我们尚未编写ProductsBLL类中的GetProductsByCategoryID(categoryID)方法来处理categoryID参数值为-1的情况。为了实现这一点,我们可以在该方法中添加如下代码:
当“—选择类别--”项被选中时,所有类别的产品将默认全部显示(如图14所示)。用户可以通过选择特定的类别来缩小显示范围。这种设计在主从报表中很常见,它允许用户从最上层的数据开始查看,然后逐步深入到更详细的信息。
在下一教程中,我们将介绍如何使用两个DropDownList进一步扩展主从报表的设计。祝编程快乐!同时感谢阅读本文的各位读者朋友!接下来是作者简介部分:Scott Mitchell是ASP/ASP.NET领域的专家,拥有多年的实践经验并出版了多本相关书籍。他是4GuysFromRolla.的创始人之一。Scott:技术世界的独立领航者
Scott,这个名字在技术圈中已然成为了一个响亮的标签。他不仅是一位独立的技术咨询顾问,更是活跃于培训领域和出版业的资深专家。今天,我们有幸走进他的世界,领略他在技术领域的精湛造诣。
Scott的独特之处在于他的多元角色。作为技术咨询顾问,他深入剖析问题,为客户提供切实可行的解决方案;作为培训师,他激情洋溢,将复杂的技术知识深入浅出地传授给学员;作为作家,他更是将多年的经验总结成文字,与读者分享宝贵的智慧。他的多重身份让他在技术领域独树一帜。
最近,Scott的新作已经圆满完成,即将由Sams出版社出版。这部名为《24小时内精通ASP.NET 2.0》的作品无疑将成为技术爱好者的福音。他的这部作品不仅是对自己技术经验的总结,更是为读者提供了一把开启新技能大门的钥匙。在信息化飞速发展的时代,掌握ASP.NET 2.0技能对于每一个开发者来说都至关重要。而Scott的作品正是帮助他们快速掌握这一技能的绝佳指南。
除了新书出版的喜悦,Scott还活跃于网络世界。他的联系和博客成为了众多粉丝交流的平台。在这里,他分享的技术动态、行业见解以及个人心得。这里不仅是知识的海洋,更是技术爱好者们相互激励、共同成长的乐园。
在这个快节奏的时代,Scott用他的智慧和热情影响着身边的人。他的故事充满挑战与奋斗,也充满了成功与喜悦。他用自己的经历告诉我们:只要热爱技术、坚持不懈,就能在这个领域找到自己的位置,实现自己的价值。
让我们共同期待Scott的新作《24小时内精通ASP.NET 2.0》的出版,相信他的文字将再次为我们带来技术的魅力和智慧的火花。让我们也期待他在未来的技术舞台上继续闪耀光芒,为技术世界带来更多的精彩与惊喜。
网络推广网站
- ASP.NET 2.0中的数据操作之七:使用DropDownList过滤的
- Javascript 拖拽雏形中的一些问题(逐行分析代码,
- ASP.NET MVC使用RazorEngine解析模板生成静态页
- 谈谈JavaScript自定义回调函数
- 6种javascript显示当前系统时间代码
- Vue 前端实现登陆拦截及axios 拦截器的使用
- JS 实现计算器详解及实例代码(一)
- vue实现滑动切换效果(仅在手机模式下可用)
- ASP.NET Core与NLog集成的完整步骤
- 学JavaScript七大注意事项【必看】
- 分享两款带遮罩的jQuery弹出框
- bootstrap日期插件daterangepicker使用详解
- bootstrap paginator分页插件的两种使用方式实例详解
- Iscrool下拉刷新功能实现方法(推荐)
- asp.net中生成饼状与柱状图实例
- vue-cli 引入、配置axios的方法