zoukankan
html css js c++ java
ASP.NET 2.0 中动态添加 GridView 模板列的例子
<%
...
@ Page Language
=
"
C#
"
%>
<%
...
@ Import Namespace
=
"
System.Data
"
%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
script
runat
="server"
>
...
ICollection CreateDataSource()
...
{
DataTable dt
=
new
DataTable();
DataRow dr;
dt.Columns.Add(
new
DataColumn(
"
id
"
,
typeof
(Int32)));
dt.Columns.Add(
new
DataColumn(
"
text
"
,
typeof
(string)));
for
(
int
i
=
0
; i
<
6
; i
++
)
...
{
dr
=
dt.NewRow();
dr[
0
]
=
i;
dr[
1
]
=
"
列表项目
"
+
i.ToString();
dt.Rows.Add(dr);
}
DataView dv
=
new
DataView(dt);
return
dv;
}
public class GridViewTemplate : ITemplate
...
{
private DataControlRowType templateType;
private string columnName;
public GridViewTemplate( DataControlRowType type, string colname )
...
{
templateType
=
type;
columnName
=
colname;
}
public
void
InstantiateIn( System.Web.UI.Control container )
...
{
switch
(templateType)
...
{
case
DataControlRowType.Header:
Literal lc
=
new
Literal();
lc.Text
=
columnName;
container.Controls.Add(lc);
break
;
case
DataControlRowType.DataRow:
DropDownList drr
=
new
DropDownList();
drr.ID
=
"
dropdown
"
;
drr.AppendDataBoundItems
=
true
;
drr.Items.Add(
new
ListItem(
"
-----请选择------
"
,
""
));
drr.Items.Add(
new
ListItem(
"
AA
"
,
"
a
"
));
drr.Items.Add(
new
ListItem(
"
BB
"
,
"
b
"
));
drr.Items.Add(
new
ListItem(
"
CC
"
,
"
c
"
));
container.Controls.Add(drr);
break
;
default
:
break
;
}
}
}
protected
void
Page_Load(object sender, EventArgs e)
...
{
if
(
!
IsPostBack)
...
{
TemplateField customField
=
new
TemplateField();
customField.ShowHeader
=
true
;
customField.HeaderTemplate
=
new
GridViewTemplate(DataControlRowType.Header,
"
动态添加列
"
);
customField.ItemTemplate
=
new
GridViewTemplate(DataControlRowType.DataRow,
""
);
GridView1.Columns.Add(customField);
GridView1.DataSource
=
CreateDataSource();
GridView1.DataBind();
}
}
protected
void
GridView1_RowDataBound( object sender, GridViewRowEventArgs e )
...
{
if
(e.Row.RowType
==
DataControlRowType.DataRow)
...
{
//
可以在这里访问数据库的其它字段的值,可以设置默认选择项,具体应用,看自己的发挥了。
//
下面只是例子,举一反三,不再费话了
DataRowView gv
=
(DataRowView)e.Row.DataItem;
int
itemSeleted
=
Int32.Parse(gv.Row[
"
id
"
].ToString())
>
3
?
0
: Int32.Parse(gv.Row[
"
id
"
].ToString());
DropDownList dr
=
(DropDownList)e.Row.FindControl(
"
dropdown
"
);
dr.SelectedIndex
=
itemSeleted;
}
}
</
script
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
id
="Head1"
runat
="server"
>
<
title
>
GridView动态添加模板列的例子
</
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
asp:GridView
ID
="GridView1"
runat
="server"
AutoGenerateColumns
="False"
OnRowDataBound
="GridView1_RowDataBound"
>
<
Columns
>
<
asp:BoundField
HeaderText
="标题"
DataField
="text"
/>
</
Columns
>
</
asp:GridView
>
</
form
>
</
body
>
</
html
>
查看全文
相关阅读:
PMP--4.3-1 进度管理计划
PMP--4.3 规划进度管理&规划进度管理工具与技术--进度管理计划
PMP--4.2 规划范围管理--范围管理计划--需求管理计划
PMP工具与技术篇--4.2.3 WBS分解
PMP--4.2.3-1 范围基准**--WBS词典
PMP --4.2.3 创建WBS(工作分解结构)--WBS--范围基准
PMP工具与技术篇--4.2.2 定义范围工具与技术总结--产品分析
PMP--4.2.2 定义范围--项目范围说明书
PMP工具与技术篇--4.2.1-6 原型(DEMO)法
PMP工具与技术篇--4.2.1-5 观察与交谈(人际关系与团队技能)
原文地址:https://www.cnblogs.com/ziyan22/p/681486.html
最新文章
非常实用的PHP代码片段推荐
PHP文件下载原理
Github欢乐多 PHP神级代码引发吐槽热
PHP Socket 编程详解
盘点PHP编程常见失误
fir.im Weekly
fir.im Weekly
fir.im Weekly
fir.im Weekly
前端跨域请求方法整理
热门文章
JavaScript中的this陷阱的最全收集--没有之一
JavaScript
JavaScript
JavaScript
详解JavaScript模块化开发
Hexo 最常用的几个命令
GitHub操作总结
命名规范
javascript中的闭包解析
PMP--4.3.1 定义活动
Copyright © 2011-2022 走看看