利用GridView显示主细表并添加打开、关闭功能

代码:

<% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " GridViewNested.aspx.cs " Inherits = " Exam_GridViewNested " %>

<! 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 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 ="760px"
       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"
                 Width
="100%" HorizontalAlign ="left" >
                
< HeaderStyle BackColor ="#9999FF" />
                
< Columns >
                  
< asp:TemplateField HeaderText ="文章名称" >
                    
< ItemTemplate >
                      
< a href ="/article/<%#Eval(" objectGuid") % > /read.aspx">
                        
<% # Eval ( " Title " ) %>
                      
</ a > [ <% # Eval ( " HitCount " ) %> ]
                    
</ ItemTemplate >
                  
</ asp:TemplateField >
                  
< asp:BoundField HeaderText ="发布日期" DataField ="CreateDate" HtmlEncode ="false" DataFormatString ="{0:yyyy年MM月dd日}"
                     ItemStyle-Width
="100px" ItemStyle-HorizontalAlign ="Center" />
                
</ Columns >
              
</ asp:GridView >
            
</ div >
          
</ ItemTemplate >
        
</ asp:TemplateField >
      
</ Columns >
    
</ asp:GridView >
  
</ form >
</ body >
</ html >

C#:

using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public partial class Exam_GridViewNested : 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();
      }
     }
   }
}

VB.NET:

Private ConnectionString As String = " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|aspxWeb.mdb;Persist Security Info=True "
Private cn1 As OleDbConnection

Protected Sub Page_Load( ByVal sender As Object , ByVal e As EventArgs)
If Not Page.IsPostBack Then
   
Dim cn As OleDbConnection = New OleDbConnection(ConnectionString)
    cn.Open
    cn1
= New OleDbConnection(ConnectionString)
    cn1.Open
   
Dim cmd As OleDbCommand = New OleDbCommand( " select * from [Subject] " , cn)
   
Dim dr As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
    MasterGridView.DataSource
= dr
    MasterGridView.DataBind
    dr.Close
    cmd.Dispose
    cn.Dispose
    cn1.Dispose
    cn
= cn1 = Nothing
End If
End Sub

Protected Sub MasterGridView_RowDataBound( ByVal sender As Object , ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
   
Dim oGridView As GridView = CType (e.Row.FindControl( " DetailGridView " ), GridView)
   
If Not (oGridView Is Nothing ) Then
     
Dim cmd As OleDbCommand = New OleDbCommand( " select top 10 * from Document Where pid = " + MasterGridView.DataKeys(e.Row.RowIndex).Value, cn1)
     
Dim dr1 As OleDbDataReader = cmd.ExecuteReader
      oGridView.DataSource
= dr1
      oGridView.DataBind
      dr1.Close
      cmd.Dispose
   
End If
End If
End Sub

转载于:https://www.cnblogs.com/yongheng178/archive/2008/09/04/1284273.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值