全部代码如下: ASPX:@ Page Language=C# ValidateRequest=C#
全部代码如下:
ASPX:
<% @ Page Language = " C# " ValidateRequest = " false " AutoEventWireup = " true " EnableViewState = " false " 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 > </ 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(); } }
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。