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 ="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 >
<! 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 ="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, 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 *,case xueli when '1' then '博士' when '2' then '硕士' when '3' then '学士' else '' end as xueliText FROM test01 where id<1000 and 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 的值,也可以取得数据库中的数据绑定
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, 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();
}
}
}
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 *,case xueli when '1' then '博士' when '2' then '硕士' when '3' then '学士' else '' end as xueliText FROM test01 where id<1000 and 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 的值,也可以取得数据库中的数据绑定
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, 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
[ 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