ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子

  < asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  PageSize ="10"  
                        Width
="542px"  AllowPaging ="True"  AllowSorting ="True"
                         DataKeyNames
="DB1_1,DB1_2"  OnRowCancelingEdit ="GridView1_RowCancelingEdit"  OnRowDeleting ="GridView1_RowDeleting"  OnRowEditing ="GridView1_RowEditing"  OnRowUpdating ="GridView1_RowUpdating"  OnPageIndexChanging ="GridView1_PageIndexChanging"  OnRowDataBound ="GridView1_RowDataBound"  OnSelectedIndexChanged ="GridView1_SelectedIndexChanged"  OnSorting ="GridView1_Sorting"   >
                        
< Columns >
                            
< asp:TemplateField  HeaderText ="序号" >
                                
< ItemTemplate >
                                
<% # this.GridView1.PageIndex  *  this.GridView1.PageSize  +  this.GridView1.Rows.Count  +   1 %>
                                
</ ItemTemplate >
                            
</ asp:TemplateField >
                            
< asp:TemplateField  HeaderText ="学历代码"  SortExpression ="DB1_1" >
                                
< EditItemTemplate >
                                    
<% --< asp:TextBox ID = " TextBox1 "  runat = " server "  Text = ' <%# Bind("DB1_1") %>'></asp:TextBox>--%>
                                < asp:DropDownList ID  = " ddlXL "  runat = " server "   DataValueField = ' <%# Bind("DB1_1") %>'></asp:DropDownList>
                                 </ EditItemTemplate >
                                
< ItemTemplate >
                                    
< asp:Label ID = " Label1 "  runat = " server "  Text = ' <%# Bind("xueliText") %>'></asp:Label>
                                 </ ItemTemplate >
                            
</ asp:TemplateField >
                            
< asp:TemplateField HeaderText = " 学历名称 "  SortExpression = " DB1_2 " >
                                
< EditItemTemplate >
                                    
< asp:TextBox ID = " TextBox2 "  runat = " server "  Text = ' <%# Bind("DB1_2") %>'></asp:TextBox>
                                 </ EditItemTemplate >
                                
< ItemTemplate >
                                    
< asp:Label ID = " Label2 "  runat = " server "  Text = ' <%# Bind("DB1_2") %>'></asp:Label>
                                 </ ItemTemplate >
                            
</ asp:TemplateField >
                          
                        
< asp:TemplateField HeaderText = " 操作 "  ShowHeader = " False " >
                        
< EditItemTemplate >
                            
< asp:LinkButton ID = " LinkButton1 "  runat = " server "  CausesValidation = " True "  CommandName = " Update "
                                 Text
= " 更新 " ></ asp:LinkButton >
                            
< asp:LinkButton ID = " LinkButton2 "  runat = " server "  CausesValidation = " False "  CommandName = " Cancel "
                                Text
= " 取消 " ></ asp:LinkButton >
                        
</ EditItemTemplate >
                        
< ItemTemplate >
                            
< asp:LinkButton ID = " LinkButton1 "  runat = " server "  CausesValidation = " False "  CommandName = " Edit "
                                Text
= " 编辑 "  OnClientClick = " return confirm('确认要编辑吗?'); " ></ asp:LinkButton >
                        
                            
< asp:LinkButton ID = " LinkButton3 "  runat = " server "  CausesValidation = " False "  CommandName = " Delete "
                                Text
= " 删除 "  OnClientClick = " return confirm('确认要删除吗?'); " ></ asp:LinkButton >
                            
< asp:LinkButton ID = " LinkButton2 "  runat = " server "  CausesValidation = " False "  CommandName = " Select "
                                Text
= " 选择 " ></ asp:LinkButton >
                        
</ ItemTemplate >
                        
</ asp:TemplateField >
                       
</ Columns >
                       
< AlternatingRowStyle BackColor = " Aquamarine "   />
                    
</ asp:GridView >

     ///   <summary>
    
///  绑定数据到GridView
    
///   </summary>
     private   void  GridViewBind()
    {
        检索数据库
        
string  strSql  =   " SELECT * FROM DB1 " ;
        得到数据集
        
this .GridView1.DataSource = conn.GetDs(strSql).Tables[ 0 ].DefaultView;
        
this .GridView1.DataBind();
   
    }
    
///   <summary>
    
///  编辑当前行
    
///   </summary>
    
///   <param name="sender"></param>
    
///   <param name="e"></param>
     protected   void  GridView1_RowEditing( object  sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex 
=  e.NewEditIndex;
        
// 当前编辑行背景色高亮
         this .GridView1.EditRowStyle.BackColor  =  Color.FromName( " #F7CE90 " );
        GridViewBind();
    }
    
///   <summary>
    
///  取消编辑状态
    
///   </summary>
    
///   <param name="sender"></param>
    
///   <param name="e"></param>
     protected   void  GridView1_RowCancelingEdit( object  sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex 
=   - 1 ;
        GridViewBind();
    }
    
///   <summary>
    
///  删除记录过程
    
///   </summary>
    
///   <param name="sender"></param>
    
///   <param name="e"></param>
     protected   void  GridView1_RowDeleting( object  sender, GridViewDeleteEventArgs e)
    {
        
// 得到单位编号
         string  rowToDelete  =  GridView1.DataKeys[e.RowIndex].Values[ 0 ].ToString();
        
// 转换为整数
        
// int ID=Convert.ToInt32(rowToDelete);
        
// 从数据库中删除
         string  str  =   " DELETE FROM DB1 where DB1_1= "   +   " ' "   +  rowToDelete  +   " ' "   +   "" ;
       
        
try
        {
        conn.RunSql(str);
        
// 重新绑定数据
        GridViewBind();
        }
        
catch  (Exception ex)
        {
        Response.Write(
" 数据库错误,错误原因: "   +  ex.Message);
        Response.End();
        }

    }
    
///   <summary>
    
///  更新记录过程
    
///   </summary>
    
///   <param name="sender"></param>
    
///   <param name="e"></param>
     protected   void  GridView1_RowUpdating( object  sender, GridViewUpdateEventArgs e)
    {
        
string  ID  =  GridView1.DataKeys[e.RowIndex].Values[ 0 ].ToString();
        
string  DB1_1  =  ((TextBox)GridView1.Rows[e.RowIndex].FindControl( " TextBox1 " )).Text;
        
// string DB1_2 = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox2")).Text;
        string  DB1_2  =  (((DropDownList))GridView1.Rows[e.RowIndex].FindControl( " ddlXL " )).SelectedItem.Text;
        
    
// 判断表单项是否有空并给出提示信息
         if  (DB1_1  ==   ""   ||  DB1_2  ==   "" )
        {
            conn.Alert(
" 请输入完整信息! " , Page);
            
return ;
        }             
       
try
       {
        conn.BuilderEdit(
" select * from DB1 where DB1_1 =' "   +  ID  +   " ' " );
        conn.dr[
" DB1_1 " =  DB1_1;
        conn.dr[
" DB1_2 " =  DB1_2;
        conn.BuilderEditClose();
       }
       
catch  (OracleException err)
       {
            
if  (err.Code.ToString()  ==   " 1 " )
                conn.Alert(
" 错误:已存在具有相同主键的记录 " , Page);
            
else
                conn.Alert(
" 错误:未能添加记录 " , Page);
        }

        Response.Write(
" <script language='javascript'>alert('数据已被保存!');</script> " );
        
// 返回浏览状态
        GridView1.EditIndex  =   - 1 ;
        GridViewBind();
    }
    
///   <summary>
    
///  分页事件
    
///   </summary>
    
///   <param name="sender"></param>
    
///   <param name="e"></param>
     protected   void  GridView1_PageIndexChanging( object  sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex 
=  e.NewPageIndex;
        GridViewBind();
    }
    
///   <summary>
    
///  加入鼠标效果及为DropDownList绑定值
    
///   </summary>
    
///   <param name="sender"></param>
    
///   <param name="e"></param>
     protected   void  GridView1_RowDataBound( object  sender, GridViewRowEventArgs e)
    {
        
// 为DropDownList绑定值
         if  (((DropDownList)e.Row.FindControl( " ddlXL " ))  !=   null )
        {
            DropDownList ddlXL 
=  (DropDownList)e.Row.FindControl( " ddlXL " );
            ddlXL.Items.Clear();
            ddlXL.Items.Add(
new  ListItem( " 博士 " " 1 " ));
            ddlXL.Items.Add(
new  ListItem( " 硕士 " " 2 " ));
            ddlXL.Items.Add(
new  ListItem( " 学士 " " 3 " ));
        }

        
// 加入鼠标滑过的高亮效果
         if  (e.Row.RowType  ==  DataControlRowType.DataRow) // 判定当前的行是否属于datarow类型的行
        {
            
// 当鼠标放上去的时候 先保存当前行的背景颜色 并给附一颜色
            e.Row.Attributes.Add( " onmouseover " " currentcolor=this.style.backgroundColor;this.style.backgroundColor='yellow',this.style.fontWeight=''; " );
            
// 当鼠标离开的时候 将背景颜色还原的以前的颜色
            e.Row.Attributes.Add( " onmouseout " " this.style.backgroundColor=currentcolor,this.style.fontWeight=''; " );
        }
        
// 单击行改变行背景颜色
         if  (e.Row.RowType  ==  DataControlRowType.DataRow)
        {
            e.Row.Attributes.Add(
" onclick " " this.style.backgroundColor='#99cc00'; this.style.color='buttontext';this.style.cursor='default'; " );
        } 
    }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值