在ASP.NET 2.0中操作数据之三十三:基于DataList和
重温主从报表的筛选之旅:从DataList与Repeater的奇妙联动说起
回顾我们之前关于使用DropDownList进行数据过滤的主从报表的,这次我们将目光转向基于DataList和Repeater实现的相同功能。让我们一起在这个熟悉的主题中找寻新的启示,重新主从报表的魅力。
想象一下,我们有一个宏伟的数据世界,数据如同繁星般繁多且复杂。DataList和Repeater就像是两个手持过滤器的者,帮助我们在数据的海洋中寻找到我们需要的信息。我们首先需要筛选数据,然后在筛选后的数据中再次寻找更具体的信息。这正是主从报表的魅力所在。
我们借助DropDownList的强大筛选功能,对主报表进行筛选。想象一下,这就像是在一个大型的图书馆中,我们首先通过类别筛选我们需要的书籍。筛选后的数据被展示在DataList中,就像图书馆中经过筛选后的书架上的书籍一样。每一个数据项都像是一本书,等待我们去深入阅读其中的内容。我们已经获取到了数据的概览,但更深入的信息还隐藏在深处。我们需要的是像导航地图一样的工具来引导我们深入。这时候,我们的Repeater就派上了用场。它像是一个导航器,引导我们深入每一个数据项的内部,展示更详细的信息。就像是在图书馆中找到了特定的书籍后,开始翻阅阅读一样。
导言
在数据展示的过程中,主从表关系是一种有效的展示方式,尤其当呈现一对多关系或多列信息时。在前面我们已经学习了如何使用GridView和DetailsView来实现主从表。本章及后续两章我们将再次深入这一主题,主要学习使用DataList和Repeater来实现。本章我们将学习如何在DropDownList中包含主记录,并在DataList中展示从记录。
第一步:增加主/从教程页面
我们需要为本次教程创建相应的文件夹和页面。新建页面时,请记得选择Site.master作为母版。需要创建的页面包括:
Default.aspx
FilterByDropDownList.aspx
CategoryListMaster.aspx
ProductsForCategoryDetails.aspx
CategoriesAndProducts.aspx
接下来,打开Default.aspx页面,将SectionLevelTutorialListing.ascx用户控件拖入。
然后,我们需要将主/从教程添加到网站地图中。打开Web.sitemap,在“Displaying Data with the DataList and Repeater”节点后添加如下描述:
标题为“使用DataList和Repeater的主/从表报告”,描述为“使用DataList和Repeater控件的样品报告”。URL指向我们的主教程页面。接着,为过滤功能、主从表跨两页以及主表与产品细节在同一页面等子主题添加相应的节点。
第二步:在DropDownList中显示Categories
我们的主/从表将在DropDownList中列出categories,并将选择的item的product通过DataList显示出来。打开DataListRepeaterFiltering文件夹中的FilterByDropDownList.aspx页面,添加一个DropDownList,并将其ID设为Categories。在智能标签上选择数据源,创建一个名为CategoriesDataSource的ObjectDataSource。
使用CategoriesBLL类的GetCategories()方法配置ObjectDataSource。然后为DropDownList的文本和值字段配置(分别为CategoryName和CategoryID)。
现在,DropDownList中已经列出了Categories表中的记录。
第三步:添加Products DataList
接下来,我们将列出选择的category关联的product。添加一个DataList,并创建一个名为ProductsByCategoryDataSource的ObjectDataSource。使用ProductsBLL类的GetProductsByCategoryID(categoryID)方法来配置它。由于我们的报表是只读的,所以在INSERT、UPDATE和DELETE标签中选择None。
向导会提示我们为categoryID参数选择来源。将Parameter source设为Control,ControlID设为Categories。这样,每当在DropDownList中选择一个新的category时,DataList就会自动更新以显示该category的product。
为了改进显示,我们只对product的name、category、supplier、quantity和price进行显示,并在每个item之间添加一个分隔符(SeparatorTemplate)。使用DataList和Repeater来显示数据的ItemTemplate例子如下:
将ObjectDataSource的标记语言添加到页面中。在浏览器中查看页面,初始时会显示Beverage的product(图9)。改变DropDownList的选择会更新DataList,这是因为我们设置了DropDownList的AutoPostBack属性为true。添加 “-- Choose a Category --” List Item以方便用户在第一次访问页面时选择所有的product而不只是默认的一个类别。同时需要在DropDownList的属性中添加此项并设置其Value为0或其他特殊值以标识选择所有产品的情况。为了让“-- Choose a Category --”在选择时不会显示任何product,我们需要将它的value设为一种在系统中不存在的值(如本例中的0)。当然也可以选择将其设为特殊值如1来返回所有产品。细心的读者会发现我们在前面的章节中对ProductsBLL类的GetProductsByCategoryID方法进行了更新以处理这种情况。当选择“-- Choose a Category --”时返回所有产品记录。祝编程愉快!最后感谢作者Scott Mitchell为我们提供了这篇深入而详细的教程。Scott:技术领域的多面手
=================
Scott,这个名字背后是一位独立的技术咨询顾问、经验丰富的培训师和备受瞩目的作家。他近期完成了新作,一本由Sams出版社倾全力推出的技术巨献——24小时内精通ASP.NET 2.0。他的作品标志着他在科技领域的深厚造诣和不懈追求。
身为技术咨询顾问的Scott,凭借他独到的见解和丰富的实践经验,为客户提供专业的技术指导和咨询服务。无论是软件开发、网络建设还是数据维护,他都能以独到的视角和精准的判断,帮助客户解决各种技术难题。
作为培训师,Scott拥有丰富的教学经验和深厚的专业知识。他擅长用简洁明了的语言,将复杂的技术知识传授给学员。他的培训课程总是充满实用性和启发性,让学员在轻松的氛围中掌握技术精髓。
除了咨询和培训,Scott还热衷于写作。他的新作24小时内精通ASP.NET 2.0,是一本集知识性和实用性于一体的技术书籍。这本书不仅深入剖析了ASP.NET 2.0的核心技术,还提供了丰富的实战案例,使读者能够在短时间内快速掌握这一技术。
想要与Scott取得联系吗?你可以通过他的电子邮件与他沟通,分享你的技术疑问和心得。你还可以关注他的博客,那里记录了他的技术研究和心得分享。
在技术的海洋中,Scott犹如一颗璀璨的星辰,用他的智慧和才华照亮着每一个追求技术的梦想。他的独立精神、专业态度和丰富经验,让他在技术领域独树一帜。无论是作为咨询顾问、培训师还是作家,Scott都在用他的热情和知识,影响着每一个与他接触的人。
让我们共同期待,Scott在未来技术领域的更多精彩表现。
网络推广网站
- 在ASP.NET 2.0中操作数据之三十三:基于DataList和
- jQueryMobile之Helloworld与页面切换的方法
- .NET Core基于Generic Host实现后台任务方法教程
- node.js中TCP Socket多进程间的消息推送示例详解
- ASP.net中实现基于UrlRewrite的防盗链功能
- 浅谈JavaScript 标准对象
- Angular1.x自定义指令实例详解
- Winform OpenFileDialog打开文件对话框
- ES7中利用Await减少回调嵌套的方法详解
- javascript 中的 delete及delete运算符
- 使用vs2019加.net core 对WeiApi的创建过程详解
- JSP中param动作的实例详解
- Angularjs根据json文件动态生成路由状态的实现方法
- 一个统计表每天的新增行数及新增存储空间的功
- 怎么引入(调用)一个JS文件
- 详解IWinter 一个路由转控制器的 Nodejs 库