ObjectDataSource.DataObjectTypeName 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定類別的名稱,ObjectDataSource 控制項會將該類別用於更新、插入或刪除資料作業中的參數,而不會從資料繫結控制項傳遞個別的值。
public:
property System::String ^ DataObjectTypeName { System::String ^ get(); void set(System::String ^ value); };
public string DataObjectTypeName { get; set; }
member this.DataObjectTypeName : string with get, set
Public Property DataObjectTypeName As String
屬性值
部分或完整類別名稱,識別 ObjectDataSource 可做為參數用於 Insert()、Update() 或 Delete() 作業的物件型別。 預設為空字串 ("")。
範例
區段包含兩個程式代碼範例。 第一個程式代碼範例示範如何使用 屬性,實作將所有參數值結合成一個物件的 DataObjectTypeName 型別。 第二個程式代碼範例顯示網頁,該網頁使用第一個程式代碼範例中使用的兩個類別。
下列程式代碼範例示範如何使用 屬性,實作將所有參數值結合成一個物件的 DataObjectTypeName 型別。 類別的 AggregateData
select 方法會傳回名為 Name
和 Number
的兩個DataTable數據行的物件。 同樣地,類別 NewData
會定義兩個讀取/寫入屬性和 Name
Number
。 類別 Insert
的 AggregateData
方法會採用 類型的 NewData
一個參數。 的 TypeName
ObjectDataSource 屬性會設定為 AggregateData
,而 DataObjectTypeName 屬性會設定為 NewData
。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Samples.AspNet.CS
{
/// <summary>
/// Summary description for AggregateData
/// </summary>
public class AggregateData
{
public AggregateData()
{
}
static DataTable table;
private DataTable CreateData()
{
table = new DataTable();
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Number", typeof(int));
table.Rows.Add(new object[] { "one", 1 });
table.Rows.Add(new object[] { "two", 2 });
table.Rows.Add(new object[] { "three", 3 });
return table;
}
public DataTable Select()
{
if (table == null)
{
return CreateData();
}
else
{
return table;
}
}
public int Insert(NewData newRecord)
{
table.Rows.Add(new object[] { newRecord.Name, newRecord.Number });
return 1;
}
}
public class NewData
{
private string nameValue;
private int numberValue;
public string Name
{
get { return nameValue; }
set { nameValue = value; }
}
public int Number
{
get { return numberValue; }
set { numberValue = value; }
}
}
}
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Namespace Samples.AspNet.VB
Public Class AggregateData
Public Sub New()
End Sub
Shared table As DataTable
Private Function CreateData() As DataTable
table = New DataTable()
table.Columns.Add("Name", GetType(String))
table.Columns.Add("Number", GetType(Integer))
table.Rows.Add(New Object() {"one", 1})
table.Rows.Add(New Object() {"two", 2})
table.Rows.Add(New Object() {"three", 3})
Return table
End Function
Public Function SelectMethod() As DataTable
If table Is Nothing Then
Return CreateData()
Else
Return table
End If
End Function
Public Function Insert(ByVal newRecord As NewData) As Integer
table.Rows.Add(New Object() {newRecord.Name, newRecord.Number})
Return 1
End Function
End Class
Public Class NewData
Private nameValue As String
Private numberValue As Integer
Public Property Name() As String
Get
Return nameValue
End Get
Set(ByVal value As String)
nameValue = value
End Set
End Property
Public Property Number() As Integer
Get
Return numberValue
End Get
Set(ByVal value As Integer)
numberValue = value
End Set
End Property
End Class
End Namespace
下列程式代碼範例顯示網頁,該網頁使用上述程式代碼範例中使用的兩個類別。
<%@ 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">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ObjectDataSource - DataObjectTypeName Property Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DetailsView
ID="DetailsView1"
runat="server"
AllowPaging="True"
AutoGenerateInsertButton="True"
DataSourceID="ObjectDataSource1"
Height="50px"
Width="125px">
</asp:DetailsView>
<asp:ObjectDataSource
ID="ObjectDataSource1"
runat="server"
DataObjectTypeName="Samples.AspNet.CS.NewData"
InsertMethod="Insert"
SelectMethod="Select"
TypeName="Samples.AspNet.CS.AggregateData">
</asp:ObjectDataSource>
</div>
</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">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ObjectDataSource - DataObjectTypeName Property Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DetailsView
ID="DetailsView1"
runat="server"
AllowPaging="True"
AutoGenerateInsertButton="True"
DataSourceID="ObjectDataSource1"
Height="50px"
Width="125px">
</asp:DetailsView>
<asp:ObjectDataSource
ID="ObjectDataSource1"
runat="server"
DataObjectTypeName="Samples.AspNet.VB.NewData"
InsertMethod="Insert"
SelectMethod="SelectMethod"
TypeName="Samples.AspNet.VB.AggregateData">
</asp:ObjectDataSource>
</div>
</form>
</body>
</html>
備註
您可以建立一個對象來匯總數個數據域值,而不是指定傳遞至 Update、 Insert和 Delete 方法的數個參數。 這個物件會傳遞至 方法,而不是數個參數。
系結至數據綁定控件之 ObjectDataSource 控件的預設行為是數據綁定控件會 Parameter 為數據源中的每個參數建立物件。 如果商務對象有許多欄位,則產生的方法也有許多欄位。 屬性 DataObjectTypeName 可讓您指定具有每個數據欄位屬性的類型。 然後,運行時間會建立一個物件,並設定其所有屬性,而不是將數個參數傳遞至 方法。 這個物件會新增至方法呼叫的參數集合。
屬性所 DataObjectTypeName 指定的型別必須具有無參數建構函式,因此 ObjectDataSource 控件可以建立類型的實例。 此類型也必須具有可設定的屬性,可讓 ObjectDataSource 控件以從數據綁定控件傳遞的值填入物件。 控制項上的 ObjectDataSource 屬性名稱應該完全符合數據綁定控件所傳遞之值的參數名稱。
DataObjectTypeName設定屬性且ObjectDataSource控件與數據系結控件相關聯時,和 DeleteMethod 屬性所InsertMethod指定的方法必須各自具有 屬性中所DataObjectTypeName指定類型的一個參數。 ConflictDetection如果屬性設定為 OverwriteChanges 值,則 屬性所UpdateMethod指定的方法必須有屬性中所指定型別的DataObjectTypeName一個參數。 ConflictDetection如果屬性設定為 CompareAllValues 值,則 屬性所UpdateMethod指定的方法必須有 屬性中所DataObjectTypeName指定之類型的兩個參數。 第一個參數包含原始值;第二個參數包含新的值。
屬性DataObjectTypeName會委派給 DataObjectTypeName 與 ObjectDataSource 控件相關聯之 的 ObjectDataSourceView 屬性。