云和山的彼端

江南好, 风景旧曾谙。日出江花红胜火,春来江水绿如蓝,能不忆江南。

翻译  在asp.net datagrid中实现多行数据编辑和删除 收藏


Screenshot - datagrid2.jpg

Screenshot - editGrid.jpg
cs代码

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.Configuration;

namespace DelhiApp.Testing
{
    
/// <summary>
    
/// Summary description for WebForm1.
    
/// </summary>

    public class WebForm1 : System.Web.UI.Page
    
{
        
protected System.Web.UI.WebControls.Button Button2;
        
protected System.Web.UI.WebControls.DataGrid DataGrid2;
        
protected System.Web.UI.WebControls.Panel Panel3;
    
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
if(!Page.IsPostBack)
            
{
                BindData(DataGrid2);
                Button2.Attributes.Add(
"onclick","return confirm('Are you sure you wish to delete these records?');");
            }

        }


        
private void BindData(DataGrid DataGrid1)
        
{
            
            OleDbConnection con
=new OleDbConnection(ConfigurationSettings.AppSettings["connectionString"]);
            OleDbCommand cmd
=new OleDbCommand();
            cmd.CommandText
="select * from emp";
            cmd.Connection
=con;
            cmd.Connection.Open();
            OleDbDataReader dr
=cmd.ExecuteReader();
            DataGrid1.DataSource
=dr;
            DataGrid1.DataBind();
            cmd.Connection.Close();
        }


        
Web Form Designer generated code

        
private void Button2_Click(object sender, System.EventArgs e)
        
{
            
foreach(DataGridItem objItem in DataGrid2.Items)
            
{
                
if (objItem.ItemType != ListItemType.Header && objItem.ItemType != ListItemType.Footer && objItem.ItemType != ListItemType.Pager)
                
{    
                    
                    
if(((CheckBox)objItem.Cells[0].FindControl("cbSelected")).Checked == true)
                    
{
                        OleDbConnection con
=new OleDbConnection(ConfigurationSettings.AppSettings["connectionString"]);
                        OleDbCommand cmd
=new OleDbCommand();
                        cmd.CommandText
="DELETE from emp where empId=@empId";
                        cmd.Parameters.Add(
"@empId",OleDbType.Numeric).Value=DataGrid2.DataKeys[objItem.ItemIndex];
                        cmd.Connection
=con;
                        cmd.Connection.Open();
                        cmd.ExecuteNonQuery();
                        cmd.Connection.Close();
                        
                    }

                }

            }

            BindData(DataGrid2);
        }


        
private void Delete_Grid(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        
{
            OleDbConnection con
=new OleDbConnection(ConfigurationSettings.AppSettings["connectionString"]);
            OleDbCommand cmd
=new OleDbCommand();
            cmd.CommandText
="DELETE from emp where empId=@empId";

            
            cmd.Parameters.Add(
"@empId",OleDbType.Numeric).Value=DataGrid2.DataKeys[e.Item.ItemIndex];

            cmd.Connection
=con;
            cmd.Connection.Open();
            cmd.ExecuteNonQuery();
            cmd.Connection.Close();

            DataGrid2.EditItemIndex
=-1;
            BindData(DataGrid2);
        }


        
private void Edit_Grid(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        
{
            DataGrid2.EditItemIndex 
= e.Item.ItemIndex;
            
            
// Always bind the data so the datagrid can be displayed.
            BindData(DataGrid2);
        }


        
private void Update_Grid(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        
{
            OleDbConnection con
=new OleDbConnection(ConfigurationSettings.AppSettings["connectionString"]);
            OleDbCommand cmd
=new OleDbCommand();
            cmd.CommandText
="UPDATE emp SET empName=@empName, salary=@salary, joiningDate=@joiningDate where empId=@empId";

            cmd.Parameters.Add(
"@empName",OleDbType.Char).Value=((TextBox)e.Item.Cells[1].Controls[0]).Text;
            cmd.Parameters.Add(
"@salary",OleDbType.Numeric).Value=((TextBox)e.Item.Cells[2].Controls[0]).Text;
            cmd.Parameters.Add(
"@joiningDate",OleDbType.Date).Value=((TextBox)e.Item.Cells[3].Controls[0]).Text;
            cmd.Parameters.Add(
"@empId",OleDbType.Numeric).Value=DataGrid2.DataKeys[e.Item.ItemIndex];

            cmd.Connection
=con;
            cmd.Connection.Open();
            cmd.ExecuteNonQuery();
            cmd.Connection.Close();

            DataGrid2.EditItemIndex
=-1;
            BindData(DataGrid2);
        }


        
private void Cancel_Grid(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        
{
            DataGrid2.EditItemIndex 
= -1;
            BindData(DataGrid2);
        }

    }

}

源程序下载:Download MultipleDeletionDatagrid.zip - 22.7 KB

发表于 @ 2007年04月13日 20:42:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:泛型简介 | 新一篇:kao 真火大

  • 发表评论
  • 评论内容:
  •  
Copyright © jecray
Powered by CSDN Blog