利用GridView显示主细表并一次编辑明细表所有数据的例子

来源:互联网 发布:mac版下载软件 编辑:程序博客网 时间:2024/05/22 18:10
<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="true" EnableViewState="true"CodeFile="Default2.aspx.cs" Inherits="Default2" %><!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 id="Head1" runat="server"><title>利用GridView显示主细表并一次编辑明细表所有数据的例子</title><style type="text/css">td,div,a {font-size:12px}</style><script type="text/javascript">//<![CDATA[function ShowHidden(sid,ev){ev = ev || window.event;var target = ev.target || ev.srcElement;var oDiv = document.getElementById("div" + sid);oDiv.style.display = oDiv.style.display == "none"?"block":"none";target.innerHTML = oDiv.style.display == "none"?"显示":"隐藏";}//]]></script></head><body><form id="form1" runat="server"><asp:GridView ID="MasterGridView" runat="server" AutoGenerateColumns="false" Width="780px"BorderWidth="1" OnRowDataBound="MasterGridView_RowDataBound" DataKeyNames="id"ShowHeader="false"><Columns><asp:TemplateField><ItemTemplate><div style="width: 100%; padding: 2px; font-weight: bold; background-color: #DEDEDE;float: left"><span style="float: left">栏目名称:<%#Eval("Title") %></span><span style="float: right;color: Red; cursor: pointer" onclick="ShowHidden('<%#Eval("id") %>',event)">隐藏</span></div><div style="background-color: #FFF; padding-left: 60px; clear: both" id="div<%#Eval("id") %>"><asp:GridView ID="DetailGridView" runat="server" AutoGenerateColumns="false" ShowHeader="true"HorizontalAlign="left" DataKeyNames="id" OnRowCommand="DetailGridView_RowCommand"OnRowDeleting="DetailGridView_RowDeleting" Width="720px"><HeaderStyle BackColor="#9999FF" /><Columns><asp:TemplateField HeaderText="文章名称" HeaderStyle-Width="540px"><ItemTemplate><input name="guid" value="<%#Eval("id") %>" type="hidden" /><input name="Title<%#Eval("id") %>" value="<%#Eval("Title") %>" style="width: 100%;border:1px solid gray" /></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="发布日期" HeaderStyle-Width="100px" ItemStyle-HorizontalAlign="Center"><ItemTemplate><input name="Date<%#Eval("id") %>" value="<%# ((DateTime)Eval("CreateDate")).ToString("yyyy-MM-dd") %>" style="border:1px solid gray"/></ItemTemplate></asp:TemplateField><asp:CommandField DeleteText="删除" ShowDeleteButton="true" ButtonType="Button" HeaderStyle-Width="40px" /></Columns></asp:GridView></div></ItemTemplate></asp:TemplateField></Columns></asp:GridView><asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="编辑所有数据" /></form></body></html>

C#:

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.Data.OleDb;using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page{string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|/aspxWeb.mdb;Persist Security Info=True";OleDbConnection cn1;protected void Page_Load( object sender, EventArgs e ){if (!Page.IsPostBack){OleDbConnection cn = new OleDbConnection(ConnectionString);cn.Open();cn1 = new OleDbConnection(ConnectionString);cn1.Open();OleDbCommand cmd = new OleDbCommand("select * from [Subject]", cn);OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);MasterGridView.DataSource = dr;MasterGridView.DataBind();dr.Close();cmd.Dispose();cn.Dispose();cn1.Dispose();cn = cn1 = null;}}protected void MasterGridView_RowDataBound( object sender, GridViewRowEventArgs e ){if (e.Row.RowType == DataControlRowType.DataRow){GridView oGridView = (GridView)e.Row.FindControl("DetailGridView");if (oGridView != null){OleDbCommand cmd = new OleDbCommand("select top 10 * from Document Where pid = " + MasterGridView.DataKeys[e.Row.RowIndex].Value, cn1);OleDbDataReader dr1 = cmd.ExecuteReader();oGridView.DataSource = dr1;oGridView.DataBind();dr1.Close();cmd.Dispose();}}}protected void DetailGridView_RowDeleting( object sender, GridViewDeleteEventArgs e ){GridView a = (GridView)sender;Response.Write("您要删除的记录是:<font color='red'>" + a.DataKeys[e.RowIndex].Value.ToString() + "</font>    TODO:执行删除动作");// TODO:执行删除动作}protected void DetailGridView_RowCommand( object sender, GridViewCommandEventArgs e ){}protected void Button1_Click( object sender, EventArgs e ){string Guids = Request.Form["guid"];if (Guids == null || Guids.Equals(string.Empty)){Response.Write("没有数据可以修改。");return;}string sql;OleDbCommand cmd;OleDbConnection cn = new OleDbConnection();cn.ConnectionString = ConnectionString;cn.Open();string[] ArrGuid = Guids.Split(',');for (int i = 0 ; i < ArrGuid.Length ; i++){sql = "UPDATE Document Set Title = @Title,CreateDate = @CreateDate Where id = @id";cmd = new OleDbCommand(sql, cn);cmd.Parameters.AddWithValue("@Title",Request.Form["Title" + ArrGuid[i].Trim()]);cmd.Parameters.AddWithValue("@CreateDate", Request.Form["Date" + ArrGuid[i].Trim()]);cmd.Parameters.AddWithValue("@id",ArrGuid[i].Trim());cmd.ExecuteNonQuery();Response.Write("<li>更新:id= " + ArrGuid[i] + " "+ Request.Form["Title" + ArrGuid[i].Trim()]);}cn.Close();cn.Dispose();}} 
原创粉丝点击