DataGrid 嵌套 dataGrid 的实现

  1 None.gif CS:
  2 None.gif using  System;
  3 None.gif using  System.Collections;
  4 None.gif using  System.ComponentModel;
  5 None.gif using  System.Data;
  6 None.gif using  System.Drawing;
  7 None.gif using  System.Web;
  8 None.gif using  System.Web.SessionState;
  9 None.gif using  System.Web.UI;
 10 None.gif using  System.Web.UI.WebControls;
 11 None.gif using  System.Web.UI.HtmlControls;
 12 None.gif using  System.Data.SqlClient;
 13 None.gif namespace  Demo
 14 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 15ExpandedSubBlockStart.gifContractedSubBlock.gif    /**//// <summary>
 16InBlock.gif    /// WebForm9 的摘要说明。
 17ExpandedSubBlockEnd.gif    /// </summary>

 18InBlock.gif    public class WebForm9 : System.Web.UI.Page
 19ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 20InBlock.gif        protected System.Web.UI.WebControls.DataGrid dgParent;
 21InBlock.gif        
 22InBlock.gif    
 23InBlock.gif        private void Page_Load(object sender, System.EventArgs e)
 24ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 25InBlock.gif            //DataGrid 中嵌套 DataGrid 的做法及方法
 26InBlock.gif
 27InBlock.gif            if(!Page.IsPostBack)
 28ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 29InBlock.gif                DataGridBind();
 30ExpandedSubBlockEnd.gif            }

 31ExpandedSubBlockEnd.gif        }

 32InBlock.gif        private void DataGridBind()
 33ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 34InBlock.gif            
 35InBlock.gif            //使用datagrid 显示层次数据
 36InBlock.gif
 37InBlock.gif            //DataRowView view=new DataRowView();
 38InBlock.gif 
 39InBlock.gif            //view.CreateChildView()
 40InBlock.gif
 41InBlock.gif            //中的参数是:
 42InBlock.gif
 43InBlock.gif            //System.Data.DataRelation 的名称的字符串
 44InBlock.gif            
 45InBlock.gif            //datasource='<%# ((DataRowView)Container.DataItem).CreateChildView("tableRelation") %>' 
 46InBlock.gif            
 47InBlock.gif            //这句话的解释是:
 48InBlock.gif            
 49InBlock.gif            //具有指定的 System.Data.DataRelation 名称的子级System.Data.DataTable 的System.Data.DataView 的一个视图
 50InBlock.gif
 51InBlock.gif
 52InBlock.gif            
 53InBlock.gif            SqlConnection conn = new SqlConnection("server=.;user=sa;pwd=;database=pubs");
 54InBlock.gif            
 55InBlock.gif            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM authors; SELECT * FROM titleauthor",conn);
 56InBlock.gif            
 57InBlock.gif            DataSet ds = new DataSet();
 58InBlock.gif
 59InBlock.gif            try
 60ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 61InBlock.gif                //填充数据集
 62InBlock.gif                da.Fill(ds);
 63InBlock.gif
 64InBlock.gif                //设定表名字
 65InBlock.gif                ds.Tables[0].TableName = "authors";
 66InBlock.gif
 67InBlock.gif                ds.Tables[1].TableName = "titleauthor";
 68InBlock.gif
 69InBlock.gif                DataColumn Parent = ds.Tables["authors"].Columns["au_id"];//父表id的集合
 70InBlock.gif
 71InBlock.gif                DataColumn Child  = ds.Tables["titleauthor"].Columns["au_id"]; //子表id的集合 
 72InBlock.gif
 73InBlock.gif                // 父主表的id必须是关联的
 74InBlock.gif
 75InBlock.gif                DataRelation tableRelation = new DataRelation("tableRelation", Parent, Child, false);//表示两个table之间的关系,false 是不设置约束
 76InBlock.gif    
 77InBlock.gif                ds.Relations.Add(tableRelation);
 78InBlock.gif
 79InBlock.gif                //进行数据绑定
 80InBlock.gif                dgParent.DataSource = ds.Tables["authors"].DefaultView;
 81InBlock.gif
 82InBlock.gif                dgParent.DataBind();
 83InBlock.gif
 84ExpandedSubBlockEnd.gif            }

 85InBlock.gif            catch(System.Data.SqlClient.SqlException e)
 86ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 87InBlock.gif                throw new Exception(e.Message);
 88InBlock.gif                
 89ExpandedSubBlockEnd.gif            }
    
 90InBlock.gif            finally
 91ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 92InBlock.gif                conn.Close();
 93InBlock.gif                conn.Dispose();
 94InBlock.gif                da.Dispose();
 95InBlock.gif                ds.Dispose();
 96ExpandedSubBlockEnd.gif            }

 97InBlock.gif        
 98ExpandedSubBlockEnd.gif        }

 99InBlock.gif
100ContractedSubBlock.gifExpandedSubBlockStart.gif        Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
101InBlock.gif        override protected void OnInit(EventArgs e)
102ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
103InBlock.gif            //
104InBlock.gif            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
105InBlock.gif            //
106InBlock.gif            InitializeComponent();
107InBlock.gif            base.OnInit(e);
108ExpandedSubBlockEnd.gif        }

109InBlock.gif        
110ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
111InBlock.gif        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
112InBlock.gif        /// 此方法的内容。
113ExpandedSubBlockEnd.gif        /// </summary>

114InBlock.gif        private void InitializeComponent()
115ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{    
116InBlock.gif            this.Load += new System.EventHandler(this.Page_Load);
117InBlock.gif
118ExpandedSubBlockEnd.gif        }

119ExpandedSubBlockEnd.gif        #endregion

120ExpandedSubBlockEnd.gif    }

121ExpandedBlockEnd.gif}

122 None.gif
123 None.gif
124 None.gifHTML:
125 None.gif <% @ Page language = " c# "  Codebehind = " WebForm9.aspx.cs "  AutoEventWireup = " false "  Inherits = " Demo.WebForm9 "   %>
126 None.gif <% @ Import NameSpace = " System.Data " %>
127 None.gif <! DOCTYPE HTML PUBLIC  " -//W3C//DTD HTML 4.0 Transitional//EN "   >
128 None.gif < html >
129 None.gif     < head >
130 None.gif         < title ></ title >
131 None.gif         < meta content = " Microsoft Visual Studio 7.0 "  name = " GENERATOR " >
132 None.gif         < meta content = " C# "  name = " CODE_LANGUAGE " >
133 None.gif         < meta content = " JavaScript "  name = " vs_defaultClientScript " >
134 None.gif         < meta content = " http://schemas.microsoft.com/intellisense/ie5 "  name = " vs_targetSchema " >
135 None.gif     </ head >
136 None.gif     < body >
137 None.gif         < form id = " form1 "  method = " post "  runat = " server " >
138 None.gif             < asp:datagrid id = " dgParent "  runat = " server "  autogeneratecolumns = " False "  cellpadding = " 4 " >
139 None.gif                 < columns >
140 None.gif                     < asp:templatecolumn >
141 None.gif                         < itemtemplate >
142 None.gif                             < table cellspacing = " 0 "  cellpadding = " 0 "  width = " 100% "  border = " 0 " >
143 None.gif                                 < tr >
144 None.gif                                     < td bgcolor = " #3399ff " >< b > 根目录:ID
145 None.gif                                             <% # DataBinder.Eval(Container.DataItem,  " au_id " %>
146 None.gif                                         </ b >
147 None.gif                                     < td bgcolor = " #3399ff " >
148 None.gif                                        名称:
149 None.gif                                         <% # ((DataRowView)Container.DataItem)[ " au_lname " %>
150 None.gif                                     </ td >
151 None.gif                                     </ td >
152 None.gif                                 </ tr >
153 None.gif                                 < tr >
154 None.gif                                     < td >
155 None.gif                                         < asp:datagrid id = " dgChild "  runat = " server "  autogeneratecolumns = " False "  datasource = ' <%# ((DataRowView)Container.DataItem).CreateChildView("tableRelation") %> '  datakeyfield = " au_id "  width = " 100% "   >
156 None.gif                                             < columns >
157 None.gif                                                 < asp:boundcolumn datafield = " au_id "  headertext = " ID " ></ asp:boundcolumn >
158 None.gif                                                 < asp:boundcolumn datafield = " title_id "  headertext = " 子目录 " ></ asp:boundcolumn >
159 None.gif                                             </ columns >
160 None.gif                                         </ asp:datagrid ></ td >
161 None.gif                                 </ tr >
162 None.gif                             </ table >
163 None.gif                         </ itemtemplate >
164 None.gif                     </ asp:templatecolumn >
165 None.gif                 </ columns >
166 None.gif                 < pagerstyle horizontalalign = " Left "  forecolor = " #003399 "  backcolor = " #99CCCC "  mode = " NumericPages " ></ pagerstyle >
167 None.gif             </ asp:datagrid ></ form >
168 None.gif     </ body >
169 None.gif </ html >
170 None.gif
171 None.gif
172 None.gif

转载于:https://www.cnblogs.com/suneryong/archive/2007/06/27/797915.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值