ASP.NET 2.0 – 如何巢状化GridView控件

本文介绍如何在ASP.NET AJAX中实现GridView控件的嵌套使用,即在一个GridView控件内部嵌入另一个GridView控件。通过具体实例展示了如何设置外层GridView的数据行模板,并在RowDataBound事件中指定内层GridView的数据源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


图表
1
 
最近听到有许多朋友询问如何以巢状方式使用GridView控件,也就是说在GridView控件中再内含另外一个GridView控件。我们最近在撰写ASP.NET AJAX一书时,刚好撰写了一个这样的范例,在此与大家分享其关键技巧。
 
图表1所示者是我们所撰写的网页范例,从外观可以看出,我们是以巢状方式使用GridView控件。外层的GridView控件用以显示产品类别数据(也就是父数据记录),内层的GridView控件用以显示特定类别的各项产品(也就是子数据记录)。要如何制作这样的界面呢?关键技巧说明如下:
 
q          首先,您必须替外层的GridView控件加入一个样版数据行(也就是TemplateField),并于此样版数据行中加入一个GridView控件(如图表2所示),这一个位于样版数据行中的GridView控件将成为内层的GridView控件。
 

图表
2
 
q          请替外层GridView控件的RowDataBound事件处理例程撰写下列程序代码,以便将外层之产品类别数据列的「类别编号」字段值指派给内层GridView控件之数据来源之SELECT陈述式的CategoryID参数,如此一来,内层GridView控件就会显示出与所在产品类别数据列相关联的产品数据:

Protected Sub ProductCategoryGridView_RowDataBound( _
 ByVal sender As Object, _
 ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
 Handles ProductCategoryGridView.RowDataBound
 If e.Row.RowType = DataControlRowType.DataRow Then
      Dim s As SqlDataSource = _
        CType(e.Row.FindControl("ProductsDataSource"), SqlDataSource)
      Dim r As System.Data.DataRowView = _
        CType(e.Row.DataItem, System.Data.DataRowView)
      s.SelectParameters("CategoryID").DefaultValue = r("类别编号").ToString()
 End If
End Sub
 
本文内容节录自章立民研究室正在撰写的「ASP.NET AJAX大解密一书」(书名暂定)。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值