GridView模版列嵌套GirdView显示主从表数据

GridView模版列嵌套GirdView显示主从表数据

// 前台代码
/*当需要在一个列表中显示主从表(例如部门-人员的信息),在asp.net1.1中我们可能会使用DataGrid模版列嵌套DataGrid的方法实现,然而,处理模版列里的DataGrid的翻页、排序、编辑等功能时都比较麻烦。在asp.net2.0中,配合DataSource控件的使用让这个问题变得非常简单!
*/

<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " GridView_GirdView.aspx.cs "  Inherits = " GridSamples_GridView_GirdView "   %>

<! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >

< html xmlns = " http://www.w3.org/1999/xhtml "   >
< head runat = " server " >
    
< title > 无标题页 </ title >
</ head >
< body >
    
< form id = " form1 "  runat = " server " >
    
< div >
        
< asp:GridView ID = " GridView1 "  runat = " server "  AutoGenerateColumns = " False "  DataKeyNames = " deptid "
            DataSourceID
= " AccessDataSource1 "  AllowPaging = " True "  AllowSorting = " True "  PageSize = " 2 "  OnRowDataBound = " GridView1_RowDataBound " >
            
< Columns >
                
< asp:BoundField DataField = " deptid "  HeaderText = " 部门编号 "  InsertVisible = " False "  ReadOnly = " True "
                    SortExpression
= " deptid "   />
                
< asp:BoundField DataField = " deptname "  HeaderText = " 部门名称 "  SortExpression = " deptname "   />
                
< asp:BoundField DataField = " deptremark "  HeaderText = " 备注 "  SortExpression = " deptremark "   />
                
< asp:TemplateField HeaderText = " 人员信息 " >
                    
< ItemTemplate >
                        
< asp:GridView ID = " GridView2 "  runat = " server "  AutoGenerateColumns = " False "  DataKeyNames = " id "
                            DataSourceID
= " AccessDataSource2 "  AllowPaging = " True "  AllowSorting = " True "  PageSize = " 5 " >
                            
< Columns >
                                
< asp:BoundField DataField = " id "  HeaderText = " 人员编号 "  InsertVisible = " False "  ReadOnly = " True "
                                    SortExpression
= " id "   />
                                
< asp:BoundField DataField = " name "  HeaderText = " 姓名 "  SortExpression = " name "   />
                                
< asp:BoundField DataField = " sex "  HeaderText = " 性别 "  SortExpression = " sex "   />
                            
</ Columns >
                            
< PagerSettings FirstPageText = " 首页 "  LastPageText = " 末页 "  Mode = " NextPreviousFirstLast "
                NextPageText
= " 下一页 "  PreviousPageText = " 上一页 "   />
                        
</ asp:GridView >
                        
< asp:AccessDataSource ID = " AccessDataSource2 "  runat = " server "  DataFile = " ~/App_Data/test.mdb "
                            SelectCommand
= " SELECT [id], [name], [sex], [deptid] FROM [employees] WHERE ([deptid] = ?) " >
                            
< SelectParameters >
                                
< asp:Parameter Name = " deptid "  Type = " Int32 "   />
                            
</ SelectParameters >
                        
</ asp:AccessDataSource >< br >
                    
</ ItemTemplate >
                
</ asp:TemplateField >
                
            
</ Columns >
            
< PagerSettings FirstPageText = " 首页 "  LastPageText = " 末页 "
                NextPageText
= " 下一页 "  PreviousPageText = " 上一页 "   />
        
</ asp:GridView >
        
< asp:AccessDataSource ID = " AccessDataSource1 "  runat = " server "  DataFile = " ~/App_Data/test.mdb "
            SelectCommand
= " SELECT [deptid], [deptname], [deptremark], [createdate] FROM [departments] " >
        
</ asp:AccessDataSource >
    
    
</ div >
    
</ form >
</ body >
</ html >
后台代码:
 
using  System;
 
using  System.Data;
 
using  System.Configuration;
 
using  System.Collections;
 
using  System.Web;
 
using  System.Web.Security;
 
using  System.Web.UI;
 
using  System.Web.UI.WebControls;
 
using  System.Web.UI.WebControls.WebParts;
 
using  System.Web.UI.HtmlControls;

 
public  partial  class
 GridSamples_GridView_GirdView :System.Web.UI.Pa
{
    
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    
{
       
if (e.Row.RowIndex > -1)
       
{
           AccessDataSource accessDS 
= .Row.FindControl("AccessDataSource2"as AccessDataSource;
           accessDS.SelectParameters[
"deptid"].DefaultValue = e.Row.Cells[0].Text;
      }

   }

}

你可能感兴趣的:(GridView)