当需要在一个列表中显示主从表(例如部门-人员的信息),在asp.net1.1中我们可能会使用DataGrid模版列嵌套DataGrid的方法实现,然而,处理模版列里的DataGrid的翻页、排序、编辑等功能时都比较麻烦。在asp.net2.0中,配合DataSource控件的使用让这个问题变得非常简单!
<%
@ Page Language="C#" AutoEventWireup="true" CodeFile="GridView_GirdView.aspx.cs" Inherits="GridSamples_GridView_GirdView"
%>
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
<
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
>
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://eddie005.cnblogs.com/Images/dot.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
1
using
System;
2
using
System.Data;
3
using
System.Configuration;
4
using
System.Collections;
5
using
System.Web;
6
using
System.Web.Security;
7
using
System.Web.UI;
8
using
System.Web.UI.WebControls;
9
using
System.Web.UI.WebControls.WebParts;
10
using
System.Web.UI.HtmlControls;
11![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
12
public
partial
class
GridSamples_GridView_GirdView : System.Web.UI.Page
13![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
14
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
15![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
16
if (e.Row.RowIndex > -1)
17![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
18
AccessDataSource accessDS = e.Row.FindControl("AccessDataSource2") as AccessDataSource;
19
accessDS.SelectParameters["deptid"].DefaultValue = e.Row.Cells[0].Text;
20
}
21
}
22
}
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/None.gif)
13
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://eddie005.cnblogs.com/Images/dot.gif)
14
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://eddie005.cnblogs.com/Images/dot.gif)
16
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://eddie005.cnblogs.com/Images/dot.gif)
18
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
21
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](http://eddie005.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)