在asp.net datagrid中实现多行数据编辑和删除
2007-04-13 20:42
507 查看
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#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
...{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
...{
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.DataGrid2.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.Cancel_Grid);
this.DataGrid2.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.Edit_Grid);
this.DataGrid2.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.Update_Grid);
this.DataGrid2.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.Delete_Grid);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
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
相关文章推荐
- Asp.net+Extjs实现对GridPanel分页、行内编辑、增加、删除、弹出新窗体增加、数据验证、编辑指定列、数据格式转换等功能
- 在ASP.NET 2.0中操作数据之六十三:GridView实现批量删除数据
- ASP.NET中Gridview读取数据表列表页面常用操作-序号,编辑,删除,删除确认
- 可用于多行分数编辑的 Asp.net UserControl (能够实现可多行编辑,并汇总的自定义Grid控件)
- Scott Mitchell 的ASP.NET 2.0数据教程之三十六:: 综叙:在DataList里编辑和删除数据
- Asp.net TreeView异步加载数据,并结合checkbox实现多选删除
- 在asp.net中实现删除DataGrid的某条记录时的提示信息
- 在ASP.NET 2.0中操作数据之三十六:在DataList里编辑和删除数据概述
- 在ASP.NET 2.0中操作数据之三十六:在DataList里编辑和删除数据概述
- ASP.NET + EXTJS 实现类似GridView行内编辑、Pannel、分页、增删改查、数据验证,格式转换
- ASP.NET中Gridview读取数据表列表页面常用操作-序号,编辑,删除,删除确认
- ASP和ASP.NET(DataGrid)实现数据列表之对比[源码]
- asp.net ajax客户端编程+jquery:实现泛型数据的客户端数据调用、添加、删除
- Asp.Net使用Easy UI DataGrid 实现行过滤[行模糊查询数据]
- asp.net 中使用datagrid编辑数据,比较两列的大小
- Scott Mitchell 的ASP.NET 2.0数据教程之三十六:: 综叙:在DataList里编辑和删除数据
- 在ASP.NET中如何在DataGrid中实现数据嵌套显示
- ASP.NET中Gridview读取数据表列表页面常用操作-序号,编辑,删除,删除确认
- asp.net ajax客户端编程+jquery:实现泛型数据的客户端数据调用、添加、删除
- Scott Mitchell 的ASP.NET 2.0数据教程之三十六:: 综叙:在DataList里编辑和删除数据