GridView控件修改、删除示例(修改含有DropDownList控件)

晨曦之光 发布于 2012/03/09 14:59
阅读 564
收藏 0

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 >


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[ ].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[ ].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[ ].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 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 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


 
原文链接:http://blog.csdn.net/21aspnet/article/details/1534370
加载中
返回顶部
顶部