zoukankan
html css js c++ java
(原创)嵌套的DataGrid如何为子DataGrid动态增加模板列
例子比较简单,直接贴代码了,例子达到以下功能:
(1)两个DataGrid嵌套
(2)外面一个DataGrid分页
(3)里面一个DataGrid动态增加模板列
<%
@ Page language
=
"
c#
"
Codebehind
=
"
WebForm45.aspx.cs
"
AutoEventWireup
=
"
false
"
Inherits
=
"
csdn2.WebForm45
"
%>
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
>
<
HTML
>
<
HEAD
>
<
title
>
Test
</
title
>
<
meta
content
="Microsoft Visual Studio .NET 7.1"
name
="GENERATOR"
>
<
meta
content
="C#"
name
="CODE_LANGUAGE"
>
<
meta
content
="JavaScript"
name
="vs_defaultClientScript"
>
<
meta
content
="http://schemas.microsoft.com/intellisense/ie5"
name
="vs_targetSchema"
>
</
HEAD
>
<
body
>
<
form
id
="Form1"
method
="post"
runat
="server"
>
<
asp:datagrid
id
="DataGrid1"
runat
="server"
AutoGenerateColumns
="False"
PageSize
="2"
AllowPaging
="True"
>
<
Columns
>
<
asp:TemplateColumn
HeaderText
="分类名"
>
<
ItemTemplate
>
<%
# DataBinder.
Eval
(Container.DataItem,
"
classname
"
)
%>
<
asp:DataGrid
id
="DataGrid2"
runat
="server"
AutoGenerateColumns
="false"
></
asp:DataGrid
>
</
ItemTemplate
>
</
asp:TemplateColumn
>
</
Columns
>
</
asp:datagrid
></
form
>
</
body
>
</
HTML
>
using
System;
using
System.Collections;
using
System.ComponentModel;
using
System.Data;
using
System.Data.SqlClient;
using
System.Drawing;
using
System.Web;
using
System.Web.SessionState;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.HtmlControls;
namespace
csdn2
{
/**/
///
<summary>
///
WebForm45 的摘要说明。
///
</summary>
public
class
WebForm45 : System.Web.UI.Page
{
protected
System.Web.UI.WebControls.DataGrid DataGrid1;
private
void
Page_Load(
object
sender, System.EventArgs e)
{
//
在此处放置用户代码以初始化页面
if
(
!
IsPostBack)
{
SetBind();
}
}
private
void
SetBind()
{
SqlConnection conn
=
new
SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[
"
conn
"
]);
SqlDataAdapter da
=
new
SqlDataAdapter(
"
select * from class;select * from topic
"
,conn);
DataSet ds
=
new
DataSet();
da.Fill(ds);
ds.Relations.Add(
"
class_topic
"
,ds.Tables[
0
].Columns[
"
classid
"
],ds.Tables[
1
].Columns[
"
topicclassid
"
]);
this
.DataGrid1.DataSource
=
ds.Tables[
0
];
this
.DataGrid1.DataBind();
}
Web 窗体设计器生成的代码
#region
Web 窗体设计器生成的代码
override
protected
void
OnInit(EventArgs e)
{
//
//
CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base
.OnInit(e);
}
/**/
///
<summary>
///
设计器支持所需的方法 - 不要使用代码编辑器修改
///
此方法的内容。
///
</summary>
private
void
InitializeComponent()
{
this
.DataGrid1.PageIndexChanged
+=
new
System.Web.UI.WebControls.DataGridPageChangedEventHandler(
this
.DataGrid1_PageIndexChanged);
this
.DataGrid1.ItemDataBound
+=
new
System.Web.UI.WebControls.DataGridItemEventHandler(
this
.DataGrid1_ItemDataBound);
this
.Load
+=
new
System.EventHandler(
this
.Page_Load);
}
#endregion
private
void
DataGrid1_ItemDataBound(
object
sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if
(e.Item.ItemType
==
ListItemType.Item
||
e.Item.ItemType
==
ListItemType.AlternatingItem)
{
DataGrid dgrd
=
(DataGrid)e.Item.FindControl(
"
DataGrid2
"
);
dgrd.ItemDataBound
+=
new
System.Web.UI.WebControls.DataGridItemEventHandler(
this
.DataGrid2_ItemDataBound);
TemplateColumn tm
=
new
TemplateColumn();
tm.ItemTemplate
=
new
ColumnTemplate();
tm.HeaderText
=
"
主题名
"
;
dgrd.Columns.Add(tm);
dgrd.DataSource
=
((DataRowView)e.Item.DataItem).Row.GetChildRows(
"
class_topic
"
);
dgrd.DataBind();
}
}
private
void
DataGrid1_PageIndexChanged(
object
source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this
.DataGrid1.CurrentPageIndex
=
e.NewPageIndex;
SetBind();
}
private
void
DataGrid2_ItemDataBound(
object
sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if
(e.Item.ItemType
==
ListItemType.Item
||
e.Item.ItemType
==
ListItemType.AlternatingItem)
{
((Label)e.Item.FindControl(
"
topicname
"
)).Text
=
Convert.ToString(DataBinder.Eval(e.Item.DataItem,
"
[\
"
topicname\
"
]
"
));
}
}
}
public
class
ColumnTemplate : ITemplate
{
public
void
InstantiateIn(Control container)
{
Label l
=
new
Label();
l.ID
=
"
topicname
"
;
container.Controls.Add(l);
}
}
}
欢迎大家阅读我的极客时间专栏
《Java业务开发常见错误100例》
【全面避坑+最佳实践=健壮代码】
查看全文
相关阅读:
怎样运用好ZBrush中的布尔运算
怎样用好ZBrush 中的映射大师功能
jvm
java8 新用法
entity framework delete table Error 11007:
'EF.Utility.CS.ttinclude' returned a null or empty string.
js判断是否绑定了事件。
线程每5分钟刷新一次
http请求提交cookie
javascrip小笔记
原文地址:https://www.cnblogs.com/lovecherry/p/145633.html
最新文章
java中构造方法的使用
第三次读后感
获取网页屏幕可见区域高度
Windows之cmd指令
fullPage.js全屏滚动插件API
iframe中的页面在IE全屏模式下没有滚动条,正常模式有滚动条
关于ECharts内存泄漏问题
jqGrid使用手册
IE6兼容png图片
H5之audio标签放音兼容所有浏览器方法
热门文章
全屏事件问题处理
eCharts.js使用心得
怎样实现ZBrush中的智能对称
怎么实现ZBrush中Alt键和Shift键的灵活运用
怎样用ZBrush中的shadowbox创建物体
ZBrush中怎样对遮罩进行反选
ZBrush中文版ZBrushCore震撼来袭
怎样在ZBrush中快速绘制人体躯干
如何用ZBrush做人体造型雕刻
怎么解决ZBrush保存历史记录太多问题
Copyright © 2011-2022 走看看