№.零零伍
博客园
首页
社区
新随笔
联系
订阅
管理
随笔-17 评论-101 文章-16 trackbacks-101
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
>
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
12
public
partial
class
GridSamples_GridView_GirdView : System.Web.UI.Page
13
{
14
protected
void
GridView1_RowDataBound(
object
sender, GridViewRowEventArgs e)
15
{
16
if
(e.Row.RowIndex
>
-
1
)
17
{
18
AccessDataSource accessDS
=
e.Row.FindControl(
"
AccessDataSource2
"
)
as
AccessDataSource;
19
accessDS.SelectParameters[
"
deptid
"
].DefaultValue
=
e.Row.Cells[
0
].Text;
20
}
21
}
22
}
只需要上面几行简单的代码便可以实现。
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted on 2006-07-04 22:28
№.零零伍
阅读(13157)
评论(3)
编辑
收藏
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
Jon Rubinstein 暂别科技舞台:再见,HP
·
塞班3设备更新换代 诺基亚Belle出货
·
推土机Windows 7补丁权威测试
·
诺基亚在印度:品牌优势,渠道特点,跟中国的对比
·
世界最早的计算机密码和黑客
»
更多新闻...
最新知识库文章
:
·
懂得保持平衡的程序员
·
一个当了爹的程序员的自白
·
为什么我辞职去创办一个科技公司
·
程序员,为什么不尝试站着工作?
·
Ruby之父松本行弘的编程人生
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
昵称:
№.零零伍
园龄:
5年7个月
粉丝:
5
关注:
0
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
(17)
CSDN常见问题集(7)
感悟零零伍(1)
技术文章-翻译(8)
转行卖茅厕了~(1)
随笔档案
(17)
2007年8月 (1)
2006年8月 (5)
2006年7月 (8)
2006年6月 (3)
文章分类
(12)
Project Management(12)
相册
零零伍的幸福人生
积分与排名
积分 - 152331
排名 - 609
阅读排行榜
推荐排行榜