前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用GridView显示主细表并一次编辑明细表所有数据的例子

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

作者头像
Java架构师必看
发布2021-03-22 10:55:50
6460
发布2021-03-22 10:55:50
举报
文章被收录于专栏:Java架构师必看

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档