快速业务通道

ASP.NET 2.0数据教程之三十五:使用Repeater和DataList实现的主/从报表

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
Source ObjectDataSource的 CategoryID参数.

下面是完成了1,2步后的标记.注意CategoryID是如何通 过绑定语法来赋给CommandArgument 的.

ASP.NET

<ItemTemplate>
<li>
<asp:LinkButton CommandName="ListProducts"  runat="server"
CommandArgument=''<%# Eval ("CategoryID") %>'' ID="ViewCategory"
Text=''<%# string.Format("{0} ({1:N0})", _
Eval ("CategoryName"), Eval("NumberOfProducts")) % >''>
</asp:LinkButton>
</li>
</ItemTemplate>

由于任何一个Button,LinkButton或 ImageButton的Command事件都会激发ItemCommand事件,所以无论在任何时候创建 ItemCommand event handler首先都要小心谨慎的检查CommandName的值.而由于我 们现在只有一个LinkButton,以后我们可能会向Repeater添加新的button控件,当 点被点击时,激发同样的ItemCommand event handler.因此最好确保检查了 CommandName,然后根据它的值来进行逻辑处理.

在确保了传入的 CommandName的值等于"ListProducts"后,event handler将 CategoryProductsDataSource ObjectDataSource的CategoryID的参数设为传入的 CommandArgument.对ObjectDataSource的SelectParameters的修改自动引起 DataList重新绑定到数据源,显示新的选中的category关联的 product.

C#

protected void Categories_ItemCommand (object source, RepeaterCommandEventArgs e)
{
// If it''s the "ListProducts" command that has been issued...
if (string.Compare(e.CommandName, "ListProducts", true) == 0)
{
// Set the CategoryProductsDataSource ObjectDataSource''s CategoryID parameter
// to the CategoryID of the category that was just clicked (e.CommandArgument)...
CategoryProductsDataSource.SelectParameters ["CategoryID"].DefaultValue =
e.CommandArgument.ToString();
}
}

做完这些后, 本章就结束了!现在在浏览器里看看你的页面.图14是第一次浏览时的样子.因为还 没有category被选中,所以没有product显示出来.点击一个category,比如 Produce,和它关联的product以两列的方式显示出来.见图15.

ASP.NET 2.0数据教程之三十五:使用Repeater和DataList实现的主/从报表

图 14:第一次浏览页面时没有Product显示

ASP.NET 2.0数据教程之三十五:使用Repeater和DataList实现的主/从报表

图 15: 点击Produce Category 后,相关的 Products 在右边显示出来

总结

我们在本章和前面一章里学习了主/从表可以分别显示在两个 页或者一起显示在一个页.如果显示在一个页上,我们需要考虑如何来控制它们的 外观.在使用GridView 和DetailView实现的主/从报表一章我们将从记录显示在主 记录之上,而在本章我们使用CSS将主记录显示在从记录的左边.

我们还探 讨了如何获取每个category关联的product数量,以及在点击Repeater里的 LinkButton(或Button或ImageButton)时服务器端的处理逻辑.

到这里为止 使用DataList和Repeater来显示主/从表已经完成了.后面我们将演示如何在 DataList里添加编辑和删除的功能.

祝编程愉快!

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号