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
>
查看全文
相关阅读:
网站添加手机短信功能
FileWriter的正确使用,请及时关闭流
myeclipse9.0没有提示
Integer.getInteger,are you kinding me? 好吧, 我还是没怎么弄明白,求高人解答。。。
构造方法充当临时对象&Calendar的使用
关于Spring IOC的一点个人理解
在JAVA中使用GUID
动态生成table下的<tr>标签不显示
MD5加密实例
String,StringBuffer 和 StringBuilder 的区别
原文地址:https://www.cnblogs.com/ziyan22/p/681486.html
最新文章
信息的传递 认识自身5
事物的分类 认识自身6
人活着的意义 认识自身1
意义大小的衡量 认识自身2
人是最好用的工具 认识自身4
脱颖而出与差异化经菅 认识自身8
asp.net使用httpModule来实现一个反向代理
程序员毕业前需要做什么
Cookie 构造函数 (String, String, String)
Dev Express系列之 XtraGrid
热门文章
气人的位与
颜色大全:颜色名称和颜色值。色板、色板对照表1
2.asp.net C#支付宝接口,发货接口部分
兼容所有浏览器的跑马灯
详细解读Jquery的$.get(),$.post(),$.ajax(),$.getJSON()用法
滚动字 百度搜索 加入收藏 设为首页 天气 日期星期
ASP.NET对文件的操作,创建文件,判断文件是否存在,判断文件是否存在删除文件夹
1.asp.net支付宝接口,付款部分
asp.net发送email 163 qq
asp.net 如何读取文件夹下所有图片名称
Copyright © 2011-2022 走看看