GridView控件修改、删除例子,修改时含有DropDownList控件。 示例运行效果图: GridViewUp.aspx文件代码:
<%
@ Page Language = " C# " AutoEventWireup = " true " CodeFile = " GridViewUp.aspx.cs " Inherits = " gridview_GridViewUp "
%>
<!
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
>
<
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
="card"
Visible
=false
/>
<
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 ( " description " )
%>
</
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, EventArgs e) { if ( ! IsPostBack) { GridViewBind(); } } protected void GridView1_PageIndexChanging( object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; GridViewBind(); } private void GridViewBind() { string connStr = ConfigurationManager.ConnectionStrings[ " ConnString " ].ConnectionString; string SqlStr = " SELECT a.*,b.description FROM test01 a,xueli b where a.xueli=b.code and a.id<1000 and a.id>200 " ; DataSet ds = new DataSet(); try { SqlConnection conn = new SqlConnection(connStr); if (conn.State.ToString() == " Closed " ) conn.Open(); SqlDataAdapter da = new SqlDataAdapter(SqlStr, conn); da.Fill(ds, " test01 " ); if (conn.State.ToString() == " Open " ) conn.Close(); GridView1.DataSource = ds.Tables[ 0 ].DefaultView; GridView1.DataBind(); } catch (Exception ex) { Response.Write( " 数据库错误,错误原因: " + ex.Message); Response.End(); } } protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e) { if (((DropDownList)e.Row.FindControl( " DDLXueli " )) != null ) { DropDownList ddlxueli = (DropDownList)e.Row.FindControl( " DDLXueli " ); // 生成 DropDownList 的值,绑定数据 string connStr = ConfigurationManager.ConnectionStrings[ " ConnString " ].ConnectionString; string SqlStr = " SELECT * from xueli " ; DataSet ds = new DataSet(); SqlConnection conn = new SqlConnection(connStr); if (conn.State.ToString() == " Closed " ) conn.Open(); SqlDataAdapter da = new SqlDataAdapter(SqlStr, conn); da.Fill(ds, " xueli " ); if (conn.State.ToString() == " Open " ) conn.Close(); ddlxueli.DataSource = ds.Tables[ 0 ].DefaultView; ddlxueli.DataTextField = " description " ; ddlxueli.DataValueField = " code " ; ddlxueli.DataBind(); // // 选中 DropDownList ddlxueli.SelectedValue = ((HiddenField)e.Row.FindControl( " HDFXueli " )).Value; // } } protected void GridView1_RowEditing( object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; GridViewBind(); } protected void GridView1_RowCancelingEdit( object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = - 1 ; GridViewBind(); } protected void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e) { 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 = " update test01 set card=' " + card + " ',xueli=' " + xueli + " ',price=' " + price + " ' where id= " + id; try { SqlConnection conn = new SqlConnection(connStr); if (conn.State.ToString() == " Closed " ) conn.Open(); SqlCommand comm = new SqlCommand(SqlStr, conn); comm.ExecuteNonQuery(); comm.Dispose(); if (conn.State.ToString() == " Open " ) conn.Close(); GridView1.EditIndex = - 1 ; GridViewBind(); } catch (Exception ex) { Response.Write( " 数据库错误,错误原因: " + ex.Message); Response.End(); } } protected void GridView1_RowDeleting( object sender, GridViewDeleteEventArgs e) { string id = GridView1.DataKeys[e.RowIndex].Values[ 0 ].ToString(); string connStr = ConfigurationManager.ConnectionStrings[ " ConnString " ].ConnectionString; string SqlStr = " delete from test01 where id= " + id; try { SqlConnection conn = new SqlConnection(connStr); if (conn.State.ToString() == " Closed " ) conn.Open(); SqlCommand comm = new SqlCommand(SqlStr, conn); comm.ExecuteNonQuery(); comm.Dispose(); if (conn.State.ToString() == " Open " ) conn.Close(); GridView1.EditIndex = - 1 ; GridViewBind(); } catch (Exception ex) { Response.Write( " 数据库错误,错误原因: " + ex.Message); Response.End(); } } }
sql server2000生成表代码:
CREATE
TABLE
[
dbo
]
.
[
test01
]
(
[
id
]
[
decimal
]
(
18
,
0
)
IDENTITY
(
1
,
1
)
NOT
NULL
,
[
name
]
[
varchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
card
]
[
varchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
xueli
]
[
varchar
]
(
50
) COLLATE Chinese_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
CREATE
TABLE
[
dbo
]
.
[
xueli
]
(
[
id
]
[
int
]
IDENTITY
(
1
,
1
)
NOT
NULL
,
[
code
]
[
int
]
NULL
,
[
description
]
[
nvarchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
CONSTRAINT
[
PK_xueli
]
PRIMARY
KEY
CLUSTERED
(
[
id
]
ASC
)
WITH
(IGNORE_DUP_KEY
=
OFF
)
ON
[
PRIMARY
]
)
ON
[
PRIMARY
]
xueli表中的数据:
id code description
1
1
博士
2
2
硕士
3
3
学士