ObjectDataSourceDisposingEventArgs 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
ObjectDisposing 컨트롤의 ObjectDataSource 이벤트에 대한 데이터를 제공합니다.
public ref class ObjectDataSourceDisposingEventArgs : System::ComponentModel::CancelEventArgs
public class ObjectDataSourceDisposingEventArgs : System.ComponentModel.CancelEventArgs
type ObjectDataSourceDisposingEventArgs = class
inherit CancelEventArgs
Public Class ObjectDataSourceDisposingEventArgs
Inherits CancelEventArgs
- 상속
예제
이 섹션에는 두 코드 예제가 있습니다. 첫 번째 코드 예제에 사용 하는 방법을 보여 줍니다.는 ObjectDataSource 비즈니스 개체를 사용 하 여 컨트롤 및 GridView 정보를 표시 하는 컨트롤입니다. 두 번째 코드 예제에서는 첫 번째 코드 예제를 사용 하는 예제에서는 중간 계층 비즈니스 개체를 제공 합니다.
다음 코드 예제에 사용 하는 방법을 보여 줍니다.는 ObjectDataSource 비즈니스 개체를 사용 하 여 컨트롤 및 GridView 정보를 표시 하는 컨트롤입니다. 웹 페이지를 수행 하는 모든 데이터 작업에 대해 만들려는 (시간 또는 리소스) 측면에서 매우 비용이 많이 드는 비즈니스 개체를 사용 하 여 작업할 수 있습니다. 비용이 많이 드는 개체를 사용 하는 한 가지 방법은 해당 인스턴스를 한 번 만들어를 만들고 모든 데이터 작업에 대 한 제거 하는 대신 다음 작업에 캐시 될 수 있습니다. 이 예제에서는이 패턴을 보여 줍니다. 처리할 수 있습니다는 ObjectCreating 개체에 대 한 캐시를 먼저 확인 하 고 이미 캐시 되지 않습니다 하는 경우에 인스턴스를 만든 이벤트입니다. 그런 다음 처리를 ObjectDisposing 이벤트를 제거 하는 대신 나중에 사용할 비즈니스 개체를 캐시 합니다. 이 예제에서는 CancelEventArgs.Cancel 의 속성을 ObjectDataSourceDisposingEventArgs 개체로 설정 됩니다 true
지시를 ObjectDataSource 를 호출 하지 않도록를 Dispose 인스턴스에서 메서드.
<%@ Import namespace="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
// Instead of creating and destroying the business object each time, the
// business object is cached in the ASP.NET Cache.
private void GetEmployeeLogic(object sender, ObjectDataSourceEventArgs e)
{
// First check to see if an instance of this object already exists in the Cache.
EmployeeLogic cachedLogic;
cachedLogic = Cache["ExpensiveEmployeeLogicObject"] as EmployeeLogic;
if (null == cachedLogic) {
cachedLogic = new EmployeeLogic();
}
e.ObjectInstance = cachedLogic;
}
private void ReturnEmployeeLogic(object sender, ObjectDataSourceDisposingEventArgs e)
{
// Get the instance of the business object that the ObjectDataSource is working with.
EmployeeLogic cachedLogic = e.ObjectInstance as EmployeeLogic;
// Test to determine whether the object already exists in the cache.
EmployeeLogic temp = Cache["ExpensiveEmployeeLogicObject"] as EmployeeLogic;
if (null == temp) {
// If it does not yet exist in the Cache, add it.
Cache.Insert("ExpensiveEmployeeLogicObject", cachedLogic);
}
// Cancel the event, so that the object will
// not be Disposed if it implements IDisposable.
e.Cancel = true;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ObjectDataSource - C# Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="ObjectDataSource1">
</asp:gridview>
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetCreateTime"
typename="Samples.AspNet.CS.EmployeeLogic"
onobjectcreating="GetEmployeeLogic"
onobjectdisposing="ReturnEmployeeLogic" >
</asp:objectdatasource>
</form>
</body>
</html>
<%@ Import namespace="Samples.AspNet.VB" %>
<%@ Page language="vb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
' Instead of creating and destroying the business object each time, the
' business object is cached in the ASP.NET Cache.
Sub GetEmployeeLogic(sender As Object, e As ObjectDataSourceEventArgs)
' First check to see if an instance of this object already exists in the Cache.
Dim cachedLogic As EmployeeLogic
cachedLogic = CType( Cache("ExpensiveEmployeeLogicObject"), EmployeeLogic)
If (cachedLogic Is Nothing) Then
cachedLogic = New EmployeeLogic
End If
e.ObjectInstance = cachedLogic
End Sub ' GetEmployeeLogic
Sub ReturnEmployeeLogic(sender As Object, e As ObjectDataSourceDisposingEventArgs)
' Get the instance of the business object that the ObjectDataSource is working with.
Dim cachedLogic As EmployeeLogic
cachedLogic = CType( e.ObjectInstance, EmployeeLogic)
' Test to determine whether the object already exists in the cache.
Dim temp As EmployeeLogic
temp = CType( Cache("ExpensiveEmployeeLogicObject"), EmployeeLogic)
If (temp Is Nothing) Then
' If it does not yet exist in the Cache, add it.
Cache.Insert("ExpensiveEmployeeLogicObject", cachedLogic)
End If
' Cancel the event, so that the object will
' not be Disposed if it implements IDisposable.
e.Cancel = True
End Sub ' ReturnEmployeeLogic
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ObjectDataSource - VB Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="ObjectDataSource1">
</asp:gridview>
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetCreateTime"
typename="Samples.AspNet.VB.EmployeeLogic"
onobjectcreating="GetEmployeeLogic"
onobjectdisposing="ReturnEmployeeLogic" >
</asp:objectdatasource>
</form>
</body>
</html>
다음 코드 예제에서는 앞의 코드 예제를 사용 하는 예제에서는 중간 계층 비즈니스 개체를 제공 합니다. 정의한 기본 비즈니스 개체의 코드 예제는는 EmployeeLogic
클래스는 상태를 유지 관리 및 비즈니스 논리를 캡슐화 하는 클래스입니다. 전체 작업 예제를 보려면이 코드를 라이브러리로 컴파일하고 ASP 페이지에서 이러한 클래스를 사용 합니다.
namespace Samples.AspNet.CS {
using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;
//
// EmployeeLogic is a stateless business object that encapsulates
// the operations you can perform on a NorthwindEmployee object.
//
public class EmployeeLogic {
public EmployeeLogic () : this(DateTime.Now) {
}
public EmployeeLogic (DateTime creationTime) {
_creationTime = creationTime;
}
private DateTime _creationTime;
// Returns a collection of NorthwindEmployee objects.
public ICollection GetCreateTime () {
ArrayList al = new ArrayList();
// Returns creation time for this example.
al.Add("The business object that you are using was created at " + _creationTime);
return al;
}
}
}
Imports System.Collections
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace Samples.AspNet.VB
Public Class EmployeeLogic
Public Sub New()
MyClass.New(DateTime.Now)
End Sub
Public Sub New(ByVal creationTime As DateTime)
_creationTime = creationTime
End Sub
Private _creationTime As DateTime
' Returns a collection of NorthwindEmployee objects.
Public Function GetCreateTime() As ICollection
Dim al As New ArrayList()
' Returns creation time for this example.
al.Add("The business object that you are using was created at " + _creationTime)
Return al
End Function 'GetCreateTime
End Class
End Namespace ' Samples.AspNet.VB
설명
ObjectDataSourceDisposingEventArgs 클래스는를 OnObjectDisposing 메서드를 사용 하는 데이터 작업 후 비즈니스 개체 인스턴스에 대 한 액세스를 제공는 ObjectDataSource 제어 및 비즈니스 개체를 수행 하는 하지만 비즈니스 하기 전에 개체는 소멸 됩니다. 비즈니스 개체를 사용 하 여 액세스를 ObjectInstance 속성입니다. 처리 하는 대리자를 추가 하 여는 ObjectDisposing 이벤트 최종 작업을 수행 하거나 정리 비즈니스 개체의 공개적으로 노출 된 모든 멤버에 액세스할 수 있습니다.
OnObjectDisposing 서 메서드를 호출 하지 않는 합니다 ObjectDataSource 메서드 데이터 작업을 수행 하는 경우이 컨트롤을 static
메서드. 메서드가 정적이 경우 비즈니스 개체 인스턴스가 생성 됩니다.
ObjectDataSource 컨트롤 수명 주기에서 다양 한 시간에 기본 비즈니스 개체를 사용 하 여 작업을 처리할 수 있는 많은 이벤트를 노출 합니다. 다음 표에서 이벤트와 연결 된 EventArgs 클래스 및 이벤트 처리기 대리자입니다.
이벤트 | EventArgs | 이벤트 처리기 |
---|---|---|
ObjectCreating. 비즈니스 개체의 인스턴스가 만들어질 직전에 발생 합니다. |
ObjectDataSourceEventArgs | ObjectDataSourceObjectEventHandler |
ObjectCreated. 비즈니스 개체의 인스턴스를 만든 직후에 발생 합니다. |
ObjectDataSourceEventArgs | ObjectDataSourceObjectEventHandler |
Selecting. 데이터를 검색 하기 전에 발생 합니다. |
ObjectDataSourceSelectingEventArgs | ObjectDataSourceSelectingEventHandler |
Inserting, Updating및 Deleting. 삽입, 업데이트 또는 삭제 작업을 수행 하기 전에 발생 합니다. |
ObjectDataSourceMethodEventArgs | ObjectDataSourceMethodEventHandler |
Selected 데이터를 검색 한 후에 발생 합니다. |
ObjectDataSourceStatusEventArgs | ObjectDataSourceStatusEventHandler |
Inserted, Updated및 Deleted. 삽입, 업데이트 또는 삭제 작업이 완료 되 면 발생 합니다. |
ObjectDataSourceStatusEventArgs | ObjectDataSourceStatusEventHandler |
ObjectDisposing. 비즈니스 개체를 제거 하기 전에 발생 합니다. |
ObjectDataSourceDisposingEventArgs | ObjectDataSourceDisposingEventHandler |
생성자
ObjectDataSourceDisposingEventArgs(Object) |
지정된 개체를 사용하여 ObjectDataSourceDisposingEventArgs 클래스의 새 인스턴스를 초기화합니다. |
속성
Cancel |
이벤트를 취소해야 할지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 CancelEventArgs) |
ObjectInstance |
ObjectDataSource 컨트롤이 데이터 작업을 수행할 대상이 되는 비즈니스 개체를 나타내는 개체를 가져옵니다. |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
적용 대상
추가 정보
.NET