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

2021-03-22 10:55:50 浏览数 (1)

全部代码如下: 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>&nbsp;&nbsp;&nbsp;&nbsp;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架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

0 人点赞