GridView控件修改、删除例子,修改时含有DropDownList控件。
示例运行效果图:
GridViewUp.aspx文件代码:
<%
@PageLanguage
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
GridViewUp.aspx.cs
"
Inherits
=
"
gridview_GridViewUp
"
%>
<!
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//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
>
<
table
cellpadding
="0"
cellspacing
="0"
border
="0"
width
="80%"
style
="font-size:11px"
>
<
tr
>
<
td
align
="center"
>
<
asp:GridView
ID
="GridView1"
runat
="server"
Width
="100%"
CellPadding
="4"
ForeColor
="#333333"
AutoGenerateColumns
="False"
AllowPaging
="True"
PageSize
="12"
OnRowCancelingEdit
="GridView1_RowCancelingEdit"
OnRowEditing
="GridView1_RowEditing"
OnRowUpdating
="GridView1_RowUpdating"
OnRowDeleting
="GridView1_RowDeleting"
DataKeyNames
="id,name"
OnPageIndexChanging
="GridView1_PageIndexChanging"
DataMember
="card,price"
OnRowDataBound
="GridView1_RowDataBound"
GridLines
="None"
>
<
Columns
>
<
asp:BoundField
HeaderText
="编号"
DataField
="id"
ReadOnly
="True"
/>
<
asp:BoundField
DataField
="name"
HeaderText
="姓名"
ReadOnly
="True"
/>
<
asp:TemplateField
HeaderText
="身份证号"
>
<
ItemTemplate
>
<%
#
Eval
(
"
card
"
)
%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:TextBox
ID
="TBCard"
Text
='<%#
Eval("card")%
>
'runat="server"Width="140px"/>
</
EditItemTemplate
>
<
ItemStyle
Width
="150px"
/>
</
asp:TemplateField
>
<
asp:TemplateField
HeaderText
="学历"
>
<
ItemTemplate
>
<%
#
Eval
(
"
xueliText
"
)
%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:HiddenField
ID
="HDFXueli"
runat
="server"
Value
='<%#
Eval("xueli")%
>
'/>
<
asp:DropDownList
ID
="DDLXueli"
runat
="server"
Width
="90px"
/>
</
EditItemTemplate
>
<
ItemStyle
Width
="100px"
/>
</
asp:TemplateField
>
<
asp:TemplateField
HeaderText
="价格"
>
<
ItemTemplate
>
<%
#
Eval
(
"
price
"
)
%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:TextBox
ID
="TBPrice"
Text
='<%#
Eval("price")%
>
'runat="server"Width="90px"/>
</
EditItemTemplate
>
<
ItemStyle
Width
="100px"
/>
</
asp:TemplateField
>
<
asp:BoundField
HeaderText
="建立时间"
DataField
="createdate"
ReadOnly
="True"
/>
<
asp:CommandField
ShowDeleteButton
="True"
ShowEditButton
="True"
HeaderText
="操作"
/>
</
Columns
>
<
PagerSettings
FirstPageText
=""
LastPageText
=""
NextPageText
=""
PreviousPageText
=""
/>
<
RowStyle
Height
="20px"
BackColor
="#F7F6F3"
ForeColor
="#333333"
/>
<
FooterStyle
BackColor
="#5D7B9D"
Font-Bold
="True"
ForeColor
="White"
/>
<
EditRowStyle
BackColor
="#999999"
/>
<
SelectedRowStyle
BackColor
="#E2DED6"
Font-Bold
="True"
ForeColor
="#333333"
/>
<
PagerStyle
BackColor
="#284775"
ForeColor
="White"
HorizontalAlign
="Center"
/>
<
HeaderStyle
BackColor
="#5D7B9D"
Font-Bold
="True"
ForeColor
="White"
/>
<
AlternatingRowStyle
BackColor
="White"
ForeColor
="#284775"
/>
</
asp:GridView
>
</
td
>
</
tr
>
</
table
>
</
div
>
</
form
>
</
body
>
</
html
>
GridViewUp.aspx.cs文件代码:
using
System;
using
System.Data;
using
System.Configuration;
using
System.Collections;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
System.Data.SqlClient;
public
partial
class
gridview_GridViewUp:System.Web.UI.Page
{
protected
void
Page_Load(
object
sender,EventArgse)
{
if
(
!
IsPostBack)
{
GridViewBind();
}
}
protected
void
GridView1_PageIndexChanging(
object
sender,GridViewPageEventArgse)
{
GridView1.PageIndex
=
e.NewPageIndex;
GridViewBind();
}
private
void
GridViewBind()
{
string
connStr
=
ConfigurationManager.ConnectionStrings[
"
ConnString
"
].ConnectionString;
string
SqlStr
=
"
SELECT*,casexueliwhen'1'then'博士'when'2'then'硕士'when'3'then'学士'else''endasxueliTextFROMtest01whereid<1000andid>200
"
;
DataSetds
=
new
DataSet();
try
{
SqlConnectionconn
=
new
SqlConnection(connStr);
if
(conn.State.ToString()
==
"
Closed
"
)conn.Open();
SqlDataAdapterda
=
new
SqlDataAdapter(SqlStr,conn);
da.Fill(ds,
"
test01
"
);
if
(conn.State.ToString()
==
"
Open
"
)conn.Close();
GridView1.DataSource
=
ds.Tables[
0
].DefaultView;
GridView1.DataBind();
}
catch
(Exceptionex)
{
Response.Write(
"
数据库错误,错误原因:
"
+
ex.Message);
Response.End();
}
}
protected
void
GridView1_RowDataBound(
object
sender,GridViewRowEventArgse)
{
if
(((DropDownList)e.Row.FindControl(
"
DDLXueli
"
))
!=
null
)
{
DropDownListddlxueli
=
(DropDownList)e.Row.FindControl(
"
DDLXueli
"
);
//
生成DropDownList的值,也可以取得数据库中的数据绑定
ddlxueli.Items.Clear();
ddlxueli.Items.Add(
new
ListItem(
"
博士
"
,
"
1
"
));
ddlxueli.Items.Add(
new
ListItem(
"
硕士
"
,
"
2
"
));
ddlxueli.Items.Add(
new
ListItem(
"
学士
"
,
"
3
"
));
//
//
选中DropDownList
ddlxueli.SelectedValue
=
((HiddenField)e.Row.FindControl(
"
HDFXueli
"
)).Value;
//
}
}
protected
void
GridView1_RowEditing(
object
sender,GridViewEditEventArgse)
{
GridView1.EditIndex
=
e.NewEditIndex;
GridViewBind();
}
protected
void
GridView1_RowCancelingEdit(
object
sender,GridViewCancelEditEventArgse)
{
GridView1.EditIndex
=
-
1
;
GridViewBind();
}
protected
void
GridView1_RowUpdating(
object
sender,GridViewUpdateEventArgse)
{
string
id
=
GridView1.DataKeys[e.RowIndex].Values[
0
].ToString();
string
card
=
((TextBox)GridView1.Rows[e.RowIndex].FindControl(
"
TBCard
"
)).Text;
string
xueli
=
((DropDownList)GridView1.Rows[e.RowIndex].FindControl(
"
DDLXueli
"
)).SelectedValue;
string
price
=
((TextBox)GridView1.Rows[e.RowIndex].FindControl(
"
TBPrice
"
)).Text;
string
connStr
=
ConfigurationManager.ConnectionStrings[
"
ConnString
"
].ConnectionString;
string
SqlStr
=
"
updatetest01setcard='
"
+
card
+
"
',xueli='
"
+
xueli
+
"
',price='
"
+
price
+
"
'whereid=
"
+
id;
try
{
SqlConnectionconn
=
new
SqlConnection(connStr);
if
(conn.State.ToString()
==
"
Closed
"
)conn.Open();
SqlCommandcomm
=
new
SqlCommand(SqlStr,conn);
comm.ExecuteNonQuery();
comm.Dispose();
if
(conn.State.ToString()
==
"
Open
"
)conn.Close();
GridView1.EditIndex
=
-
1
;
GridViewBind();
}
catch
(Exceptionex)
{
Response.Write(
"
数据库错误,错误原因:
"
+
ex.Message);
Response.End();
}
}
protected
void
GridView1_RowDeleting(
object
sender,GridViewDeleteEventArgse)
{
string
id
=
GridView1.DataKeys[e.RowIndex].Values[
0
].ToString();
string
connStr
=
ConfigurationManager.ConnectionStrings[
"
ConnString
"
].ConnectionString;
string
SqlStr
=
"
deletefromtest01whereid=
"
+
id;
try
{
SqlConnectionconn
=
new
SqlConnection(connStr);
if
(conn.State.ToString()
==
"
Closed
"
)conn.Open();
SqlCommandcomm
=
new
SqlCommand(SqlStr,conn);
comm.ExecuteNonQuery();
comm.Dispose();
if
(conn.State.ToString()
==
"
Open
"
)conn.Close();
GridView1.EditIndex
=
-
1
;
GridViewBind();
}
catch
(Exceptionex)
{
Response.Write(
"
数据库错误,错误原因:
"
+
ex.Message);
Response.End();
}
}
}
sql server2000生成表代码:
CREATE
TABLE
[
dbo
]
.
[
test01
]
(
[
id
]
[
decimal
]
(
18
,
0
)
IDENTITY
(
1
,
1
)
NOT
NULL
,
[
name
]
[
varchar
]
(
50
)COLLATEChinese_PRC_CI_AS
NULL
,
[
card
]
[
varchar
]
(
50
)COLLATEChinese_PRC_CI_AS
NULL
,
[
xueli
]
[
varchar
]
(
50
)COLLATEChinese_PRC_CI_AS
NULL
,
[
price
]
[
decimal
]
(
18
,
0
)
NULL
,
[
createdate
]
[
datetime
]
NULL
)
ON
[
PRIMARY
]
GO
ALTER
TABLE
[
dbo
]
.
[
test01
]
ADD
CONSTRAINT
[
DF_test01_createdate
]
DEFAULT
(
getdate
())
FOR
[
createdate
]
,
CONSTRAINT
[
PK_test01
]
PRIMARY
KEY
CLUSTERED
(
[
id
]
)
ON
[
PRIMARY
]
GO