GridView嵌套GridView 级联删除(1.纯代码删除版本)
2007-05-31 21:23
281 查看
GridView嵌套GridView,对子GridView及父GridView级联删除的问题
本例未考虑异常处理,提示信息及事务处理,有兴趣的朋友可自己添加修改
aspx
aspx.cs
本例未考虑异常处理,提示信息及事务处理,有兴趣的朋友可自己添加修改
aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridViewNesting.aspx.cs" Inherits="GridViewNesting" %> <!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>GridViewNesting</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="au_id" OnRowDeleting="GridView1_RowDeleting" > <Columns> <asp:CommandField ShowEditButton="True" /> <asp:CommandField ShowDeleteButton="True" /> <asp:TemplateField HeaderText="au_id" > <ItemTemplate> <asp:Label id="Label1" runat="server" Text='<%# Eval("au_id")%>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="au_lname"> <ItemTemplate> <asp:Label id="Label2" runat="server" Text='<%# Eval("au_lname")%>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="titleDetail"> <ItemTemplate> <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataKeyNames="au_id,title_id" DataSource='<%# GetTitleID(Eval("au_id").ToString()) %>' OnRowDeleting="GridView2_OnRowDeleting"> <Columns> <asp:CommandField ShowEditButton="True" /> <asp:CommandField ShowDeleteButton="True" /> <asp:TemplateField HeaderText="title_id" > <ItemTemplate> <asp:Label id="Label1" runat="server" Text='<%# Eval("title_id")%>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="au_ord"> <ItemTemplate> <asp:Label id="Label2" runat="server" Text='<%# Eval("au_ord")%>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </form> </body> </html>
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 GridViewNesting : System.Web.UI.Page { private void BindGrid() { SqlConnection cn = new SqlConnection(@"server=./SQLExpress;uid=sa;pwd=;database=pubs"); SqlDataAdapter da = new SqlDataAdapter("select au_id, au_lname from authors", cn); DataSet ds = new DataSet(); cn.Open(); da.Fill(ds); cn.Close(); GridView1.DataSource = ds; GridView1.DataBind(); } public DataView GetTitleID(string au_id) { SqlConnection cn = new SqlConnection(@"server=./SQLExpress;uid=sa;pwd=;database=pubs"); SqlDataAdapter da = new SqlDataAdapter("select au_id, title_id, au_ord from titleauthor where au_id = @au_id", cn); da.SelectCommand.Parameters.AddWithValue("@au_id", au_id); DataSet ds = new DataSet(); cn.Open(); da.Fill(ds); cn.Close(); return ds.Tables[0].DefaultView; } private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { BindGrid(); } } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { //此段实际应用应考虑事务处理 SqlConnection cn = new SqlConnection(@"server=./SQLExpress;uid=sa;pwd=;database=pubs"); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "delete from titleauthor where au_id = @au_id"; cmd.Connection = cn; cmd.Parameters.AddWithValue("@au_id", GridView1.DataKeys[e.RowIndex].Value); cn.Open(); cmd.ExecuteNonQuery(); cmd.CommandText = "delete from authors where au_id = @au_id"; cmd.ExecuteNonQuery(); cn.Close(); BindGrid(); } protected void GridView2_OnRowDeleting(object sender, GridViewDeleteEventArgs e) { GridView GridView2 = sender as GridView; SqlConnection cn = new SqlConnection(@"server=./SQLExpress;uid=sa;pwd=;database=pubs"); SqlCommand cmd = new SqlCommand("delete from titleauthor where au_id = @au_id and title_id = @title_id", cn); cmd.Parameters.AddWithValue("@au_id", GridView2.DataKeys[e.RowIndex].Values[0]); cmd.Parameters.AddWithValue("@title_id", GridView2.DataKeys[e.RowIndex].Values[1]); cn.Open(); cmd.ExecuteNonQuery(); cn.Close(); BindGrid(); } }
相关文章推荐
- GridView嵌套GridView 级联删除(1.纯代码删除版本)
- GridView嵌套GridView 级联删除(纯代码删除版本)
- GridView嵌套GridView 级联删除(使用SqlDataSource删除版本)
- GridView嵌套GridView 级联删除(2.使用SqlDataSource删除版本)
- GridView自定义编辑、删除、全选删除代码
- DataGrid删除确认代码以及Gridview删除确认代码
- 完全代码实现GridView删除按钮提示
- GridView操作大全 无代码分页排序 正反双向排序 和下拉菜单DropDownList结合,选中,编辑,取消,删除
- 1.GridView无代码分页排序 GridView选中,编辑,取消,删除:
- GridView自定义删除、编辑、全选删除代码(数据库应用membership)
- GridView操作大全 无代码分页排序 正反双向排序 和下拉菜单DropDownList结合,选中,编辑,取消,删除
- GridView 中如何实现编辑 删除(在编辑状态中 嵌套DropDownList)
- GridView隐藏列,删除提示简单代码
- GridView中的编辑和删除按钮,执行更新和删除代码之前的更新提示或删除提示
- GridView的编辑,删除功能,用代码来实现GridView与数据库里表的绑定--来自百度知道
- [置顶] 【Android】listview 嵌套gridview报错,代码:”during second layout pass: posting in next frame
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除 之代码规范
- GridView编辑删除取消完整代码
- GridView的编辑删除代码
- 手动绑定的GridView控件,“编辑”“删除”按钮的委托代码怎么写