ObjectDataSource.SelectMethod 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置 ObjectDataSource 控件调用以检索数据的方法或函数的名称。
public:
property System::String ^ SelectMethod { System::String ^ get(); void set(System::String ^ value); };
public string SelectMethod { get; set; }
member this.SelectMethod : string with get, set
Public Property SelectMethod As String
属性值
一个字符串,表示 ObjectDataSource 用于检索数据的方法或函数的名称。 默认值为空字符串("")。
示例
下面的代码示例演示控件如何使用 GridView Web 窗体页上的 控件 ObjectDataSource 显示数据。 使用 ObjectDataSource 其 TypeName 属性标识部分或完全限定的类名,以及调用以使用其 SelectMethod 属性检索数据的方法。 在运行时,将使用反射创建 对象并调用 方法。 控件 GridView 通过 IEnumerable 由 属性指定的 SelectMethod 方法返回的集合进行枚举,并显示数据。
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="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">
<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:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetAllEmployees"
typename="Samples.AspNet.CS.EmployeeLogic" />
</form>
</body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ObjectDataSource - Visual Basic Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="ObjectDataSource1" />
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetAllEmployees"
typename="Samples.AspNet.VB.EmployeeLogic" />
</form>
</body>
</html>
注解
指定的方法可以具有任何方法签名,但它必须返回下表中显示的类型之一,控件 ObjectDataSource 才能成功调用它。
返回类型 | 操作 |
---|---|
IEnumerable | IEnumerable由 Select 方法返回。 |
DataTable | 使用 DataViewDataTable 创建 ,并由 Select 方法返回。 |
DataView | DataView方法返回 Select 。 |
DataSet | 提取的第DataSet一DataTable个 DataView ,并由 方法创建并返回 Select 。 |
Object | 对象包装在单元素 IEnumerable 集合中,并由 Select 方法返回。 |
属性SelectMethod委托给SelectMethod与 ObjectDataSource 控件关联的 对象的 属性ObjectDataSourceView。
使用 ObjectDataSource 类删除或更新数据时,请确保为ObjectDataSource集合或UpdateParameters集合中的DeleteParameters控件配置的参数名称与 select 方法返回的列名匹配。
对象生存期
属性 SelectMethod 标识的方法可以是实例方法,也可以是 static
Visual Basic) Shared
方法中的 (。 如果是实例方法,则每次调用属性指定 SelectMethod 的方法时,都会创建并销毁业务对象。 在调用 属性指定SelectMethod的方法之前,可以处理 ObjectCreated 和 ObjectCreating 事件以使用业务对象。 还可以处理在 ObjectDisposing 调用 属性指定 SelectMethod 的方法后引发的事件。 如果业务对象实现 IDisposable 接口,则会在 Dispose 销毁对象之前调用 方法。 如果在 Visual Basic) Shared
中 (该方法static
,则永远不会创建业务对象,并且无法处理 ObjectCreated、 ObjectCreating和 ObjectDisposing 事件。
参数合并
参数从以下源添加到 SelectParameters 集合中:
以声明方式从 元素。
SelectParameters
以编程方式从
Selecting
方法。
首先,添加 元素中列出的 SelectParameters
参数。 其次,在 运行方法之前Select发生的 事件中Selecting以编程方式添加和删除参数。 合并参数后,将解析 方法。 下一节将讨论方法解决方法。
重要
应验证从客户端接收的任何参数值。 运行时只是将参数值 SelectMethod 替换为 属性。
方法解析
Select调用 方法时,数据绑定控件中的数据字段、在 元素中SelectParameters
以声明方式创建的参数以及添加到事件处理程序中的Selecting参数将全部合并。 (有关详细信息,请参阅上一部分。) 然后,控件 ObjectDataSource 尝试查找要调用的方法。 首先,它查找具有 属性中指定的 SelectMethod 名称的一个或多个方法。 如果未找到匹配项, InvalidOperationException 则会引发异常。 如果找到匹配项,则查找匹配的参数名称。 例如,假设 由 TypeName 属性指定的类型具有两个名为 SelectARecord
的方法。 一个 SelectARecord
具有一个参数 ID
, 另一个 SelectARecord
具有两个参数, Name
和 Number
。
SelectParameters如果集合只有一个名为 的参数ID
,则SelectARecord
调用仅ID
具有 参数的方法。 在解析方法时不会检查参数的类型。 参数的顺序并不重要。
DataObjectTypeName如果设置了 属性,则以不同的方式解析方法。 ObjectDataSource查找具有在 属性中指定的SelectMethod名称的方法,该方法采用 属性中指定的DataObjectTypeName类型的一个参数。 在这种情况下,参数的名称并不重要。