1
CS:
2
using System;
3
using System.Collections;
4
using System.ComponentModel;
5
using System.Data;
6
using System.Drawing;
7
using System.Web;
8
using System.Web.SessionState;
9
using System.Web.UI;
10
using System.Web.UI.WebControls;
11
using System.Web.UI.HtmlControls;
12
using System.Data.SqlClient;
13
namespace Demo
14
{
15
/// <summary>
16
/// WebForm9 的摘要说明。
17
/// </summary>
18
public class WebForm9 : System.Web.UI.Page
19
{
20
protected System.Web.UI.WebControls.DataGrid dgParent;
21
22
23
private void Page_Load(object sender, System.EventArgs e)
24
{
25
//DataGrid 中嵌套 DataGrid 的做法及方法
26![](/Images/OutliningIndicators/InBlock.gif)
27
if(!Page.IsPostBack)
28
{
29
DataGridBind();
30
}
31
}
32
private void DataGridBind()
33
{
34
35
//使用datagrid 显示层次数据
36![](/Images/OutliningIndicators/InBlock.gif)
37
//DataRowView view=new DataRowView();
38
39
//view.CreateChildView()
40![](/Images/OutliningIndicators/InBlock.gif)
41
//中的参数是:
42![](/Images/OutliningIndicators/InBlock.gif)
43
//System.Data.DataRelation 的名称的字符串
44
45
//datasource='<%# ((DataRowView)Container.DataItem).CreateChildView("tableRelation") %>'
46
47
//这句话的解释是:
48
49
//具有指定的 System.Data.DataRelation 名称的子级System.Data.DataTable 的System.Data.DataView 的一个视图
50![](/Images/OutliningIndicators/InBlock.gif)
51![](/Images/OutliningIndicators/InBlock.gif)
52
53
SqlConnection conn = new SqlConnection("server=.;user=sa;pwd=;database=pubs");
54
55
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM authors; SELECT * FROM titleauthor",conn);
56
57
DataSet ds = new DataSet();
58![](/Images/OutliningIndicators/InBlock.gif)
59
try
60
{
61
//填充数据集
62
da.Fill(ds);
63![](/Images/OutliningIndicators/InBlock.gif)
64
//设定表名字
65
ds.Tables[0].TableName = "authors";
66![](/Images/OutliningIndicators/InBlock.gif)
67
ds.Tables[1].TableName = "titleauthor";
68![](/Images/OutliningIndicators/InBlock.gif)
69
DataColumn Parent = ds.Tables["authors"].Columns["au_id"];//父表id的集合
70![](/Images/OutliningIndicators/InBlock.gif)
71
DataColumn Child = ds.Tables["titleauthor"].Columns["au_id"]; //子表id的集合
72![](/Images/OutliningIndicators/InBlock.gif)
73
// 父主表的id必须是关联的
74![](/Images/OutliningIndicators/InBlock.gif)
75
DataRelation tableRelation = new DataRelation("tableRelation", Parent, Child, false);//表示两个table之间的关系,false 是不设置约束
76
77
ds.Relations.Add(tableRelation);
78![](/Images/OutliningIndicators/InBlock.gif)
79
//进行数据绑定
80
dgParent.DataSource = ds.Tables["authors"].DefaultView;
81![](/Images/OutliningIndicators/InBlock.gif)
82
dgParent.DataBind();
83![](/Images/OutliningIndicators/InBlock.gif)
84
}
85
catch(System.Data.SqlClient.SqlException e)
86
{
87
throw new Exception(e.Message);
88
89
}
90
finally
91
{
92
conn.Close();
93
conn.Dispose();
94
da.Dispose();
95
ds.Dispose();
96
}
97
98
}
99![](/Images/OutliningIndicators/InBlock.gif)
100
Web 窗体设计器生成的代码
120
}
121
}
122![](/Images/OutliningIndicators/None.gif)
123![](/Images/OutliningIndicators/None.gif)
124
HTML:
125
<%@ Page language="c#" Codebehind="WebForm9.aspx.cs" AutoEventWireup="false" Inherits="Demo.WebForm9" %>
126
<%@ Import NameSpace="System.Data"%>
127
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
128
<html>
129
<head>
130
<title></title>
131
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
132
<meta content="C#" name="CODE_LANGUAGE">
133
<meta content="JavaScript" name="vs_defaultClientScript">
134
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
135
</head>
136
<body>
137
<form id="form1" method="post" runat="server">
138
<asp:datagrid id="dgParent" runat="server" autogeneratecolumns="False" cellpadding="4">
139
<columns>
140
<asp:templatecolumn>
141
<itemtemplate>
142
<table cellspacing="0" cellpadding="0" width="100%" border="0">
143
<tr>
144
<td bgcolor="#3399ff"><b>根目录:ID
145
<%# DataBinder.Eval(Container.DataItem, "au_id") %>
146
</b>
147
<td bgcolor="#3399ff">
148
名称:
149
<%# ((DataRowView)Container.DataItem)["au_lname"] %>
150
</td>
151
</td>
152
</tr>
153
<tr>
154
<td>
155
<asp:datagrid id="dgChild" runat="server" autogeneratecolumns="False" datasource='<%# ((DataRowView)Container.DataItem).CreateChildView("tableRelation") %>' datakeyfield="au_id" width="100%" >
156
<columns>
157
<asp:boundcolumn datafield="au_id" headertext="ID"></asp:boundcolumn>
158
<asp:boundcolumn datafield="title_id" headertext="子目录"></asp:boundcolumn>
159
</columns>
160
</asp:datagrid></td>
161
</tr>
162
</table>
163
</itemtemplate>
164
</asp:templatecolumn>
165
</columns>
166
<pagerstyle horizontalalign="Left" forecolor="#003399" backcolor="#99CCCC" mode="NumericPages"></pagerstyle>
167
</asp:datagrid></form>
168
</body>
169
</html>
170![](/Images/OutliningIndicators/None.gif)
171![](/Images/OutliningIndicators/None.gif)
172![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
15
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
31
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
120
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
121
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
122
![](/Images/OutliningIndicators/None.gif)
123
![](/Images/OutliningIndicators/None.gif)
124
![](/Images/OutliningIndicators/None.gif)
125
![](/Images/OutliningIndicators/None.gif)
126
![](/Images/OutliningIndicators/None.gif)
127
![](/Images/OutliningIndicators/None.gif)
128
![](/Images/OutliningIndicators/None.gif)
129
![](/Images/OutliningIndicators/None.gif)
130
![](/Images/OutliningIndicators/None.gif)
131
![](/Images/OutliningIndicators/None.gif)
132
![](/Images/OutliningIndicators/None.gif)
133
![](/Images/OutliningIndicators/None.gif)
134
![](/Images/OutliningIndicators/None.gif)
135
![](/Images/OutliningIndicators/None.gif)
136
![](/Images/OutliningIndicators/None.gif)
137
![](/Images/OutliningIndicators/None.gif)
138
![](/Images/OutliningIndicators/None.gif)
139
![](/Images/OutliningIndicators/None.gif)
140
![](/Images/OutliningIndicators/None.gif)
141
![](/Images/OutliningIndicators/None.gif)
142
![](/Images/OutliningIndicators/None.gif)
143
![](/Images/OutliningIndicators/None.gif)
144
![](/Images/OutliningIndicators/None.gif)
145
![](/Images/OutliningIndicators/None.gif)
146
![](/Images/OutliningIndicators/None.gif)
147
![](/Images/OutliningIndicators/None.gif)
148
![](/Images/OutliningIndicators/None.gif)
149
![](/Images/OutliningIndicators/None.gif)
150
![](/Images/OutliningIndicators/None.gif)
151
![](/Images/OutliningIndicators/None.gif)
152
![](/Images/OutliningIndicators/None.gif)
153
![](/Images/OutliningIndicators/None.gif)
154
![](/Images/OutliningIndicators/None.gif)
155
![](/Images/OutliningIndicators/None.gif)
156
![](/Images/OutliningIndicators/None.gif)
157
![](/Images/OutliningIndicators/None.gif)
158
![](/Images/OutliningIndicators/None.gif)
159
![](/Images/OutliningIndicators/None.gif)
160
![](/Images/OutliningIndicators/None.gif)
161
![](/Images/OutliningIndicators/None.gif)
162
![](/Images/OutliningIndicators/None.gif)
163
![](/Images/OutliningIndicators/None.gif)
164
![](/Images/OutliningIndicators/None.gif)
165
![](/Images/OutliningIndicators/None.gif)
166
![](/Images/OutliningIndicators/None.gif)
167
![](/Images/OutliningIndicators/None.gif)
168
![](/Images/OutliningIndicators/None.gif)
169
![](/Images/OutliningIndicators/None.gif)
170
![](/Images/OutliningIndicators/None.gif)
171
![](/Images/OutliningIndicators/None.gif)
172
![](/Images/OutliningIndicators/None.gif)