繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> 利用GridView显示主细表并添加打开、关闭功能

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

2007-10-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:本文例子使用嵌套的 GridView 来显示主细表,并使用 JavaScript 来控制明细表的显示与隐藏。值得注意的是:在 GridView 的 RowDataBound 的事件里,不要多次执行数据库的打开,否则,将很快会导致连接数已满的问...
关键字:GridView 功能

本文例子使用嵌套的 GridView 来显示主细表,并使用 JavaScript 来控制明细表的显示与隐藏。值得注意的是:在 GridView 的 RowDataBound 的事件里,不要多次执行数据库的打开,否则,将很快会导致连接数已满的问题。

例子中的数据库,请参照《 ASP.NET 2.0应用开发技术》一书中附带的光盘中的数据库。

查看例子

代码:

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

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

BorderWidth="1" OnRowDataBound="MasterGridView_RowDataBound" DataKeyNames="id"

ShowHeader="false">

栏目名称:<%#Eval("Title") %>',event)">隐藏

">

Width="100%" HorizontalAlign="left">

/read.aspx">

<%#Eval("Title") %>

[<%# Eval("HitCount") %>]

ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />

CS:

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

做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。

责任编辑:admin
相关文章