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

全部代码如下: ASPX:@ Page Language=C# ValidateRequest=C#
强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码

全部代码如下: 

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,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/2695

发表评论