ObjectDataSourceEventArgs 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为 ObjectCreating 控件的 ObjectCreated 和 ObjectDataSource 事件提供数据。
public ref class ObjectDataSourceEventArgs : EventArgs
public class ObjectDataSourceEventArgs : EventArgs
type ObjectDataSourceEventArgs = class
inherit EventArgs
Public Class ObjectDataSourceEventArgs
Inherits EventArgs
- 继承
示例
本部分包含两个代码示例。 第一个 ObjectDataSource 代码示例演示如何将控件与业务对象和 GridView 控件配合使用来检索和显示信息。 第二个代码示例提供第一个代码示例使用的示例基本业务对象。
下面的代码示例演示如何将 ObjectDataSource 控件与业务对象和 GridView 控件一起使用来检索和显示信息。 在此示例中,与许多实际方案一样,可能无法也不适合将业务对象的默认实例与 控件一起使用 ObjectDataSource 。 在此示例中, ObjectDataSource 无法成功调用无参数构造函数,因为它将引发异常。 在某些情况下,无参数构造函数可能会受到保护,而在某些情况下,它可能不会将业务对象初始化为所需状态。 无论出于什么原因,都可以自行创建业务对象的实例,并将该实例设置为 ObjectInstance 传递给处理程序的 ObjectDataSourceEventArgs 对象的 属性。 这是 将用于执行其工作的业务对象实例 ObjectDataSource 。
<%@ 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">
private void NorthwindLogicCreating(object sender, ObjectDataSourceEventArgs e)
{
// Create an instance of the business object using a non-default constructor.
EmployeeLogic eLogic = new EmployeeLogic("Not created by the default constructor!");
// Set the ObjectInstance property so that the ObjectDataSource uses the created instance.
e.ObjectInstance = eLogic;
}
</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="GetAllEmployees"
onobjectcreating="NorthwindLogicCreating"
typename="Samples.AspNet.CS.EmployeeLogic" >
</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">
Private Sub NorthwindLogicCreating(sender As Object, e As ObjectDataSourceEventArgs)
' Create an instance of the business object using a non-default constructor.
Dim eLogic As EmployeeLogic = New EmployeeLogic("Not created by the default constructor!")
' Set the ObjectInstance property so that the ObjectDataSource uses the created instance.
e.ObjectInstance = eLogic
End Sub ' NorthwindLogicCreating
</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="GetAllEmployees"
onobjectcreating="NorthwindLogicCreating"
typename="Samples.AspNet.VB.EmployeeLogic" >
</asp:objectdatasource>
</form>
</body>
</html>
下面的代码示例演示前面的代码示例使用的示例基本业务对象。
namespace Samples.AspNet.CS {
using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;
public class EmployeeLogic {
public EmployeeLogic() {
throw new NotSupportedException("Initialize data.");
}
public EmployeeLogic(string data) {
_data = data;
}
private string _data;
// Returns a collection of NorthwindEmployee objects.
public ICollection GetAllEmployees () {
ArrayList al = new ArrayList();
al.Add(_data);
return al;
}
}
}
Imports System.Collections
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace Samples.AspNet.VB
Public Class EmployeeLogic
Public Sub New()
Throw New NotSupportedException("Initialize data.")
End Sub
Public Sub New(ByVal data As String)
_data = data
End Sub
Private _data As String
' Returns a collection of NorthwindEmployee objects.
Public Function GetAllEmployees() As ICollection
Dim al As New ArrayList()
al.Add(_data)
Return al
End Function 'GetAllEmployees
End Class
End Namespace ' Samples.AspNet.VB
注解
在 ObjectDataSourceEventArgs 和 OnObjectCreated 方法中使用 OnObjectCreating 类,以在执行使用控件和业务对象的任何数据操作之前提供对ObjectDataSource业务对象实例的访问。 使用 ObjectInstance 属性设置和访问业务对象。 通过添加事件处理程序委托来处理事件 ObjectCreating ,可以在自定义代码中创建业务对象的实例, ObjectDataSource 而不是执行实例化。 当希望业务对象的非默认实例或调用非无参数构造函数来创建实例时,这非常有用;始终 ObjectDataSource 调用无参数构造函数来创建它使用的业务对象的实例。 还可以添加事件处理程序委托来处理 ObjectCreated 事件,使你能够访问业务对象的任何公开成员以执行任何其他初始化或工作。
OnObjectCreating如果执行数据操作static
的业务对象方法是 ,则 控件不会调用 ObjectDataSource 和 OnObjectCreated 方法。
控件 ObjectDataSource 公开了许多事件,你可以处理这些事件,以在基础业务对象生命周期中的不同时间处理这些事件。 下表列出了事件以及关联的 EventArgs 类和事件处理程序委托。
事件 | EventArgs | EventHandler |
---|---|---|
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 |
构造函数
ObjectDataSourceEventArgs(Object) |
使用指定的对象初始化 ObjectDataSourceEventArgs 类的新实例。 |
属性
ObjectInstance |
获取或设置表示一个业务对象的对象,ObjectDataSource 控件使用该业务对象执行数据操作。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |