ObjectDataSource.DataObjectTypeName Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví název třídy, kterou ObjectDataSource ovládací prvek používá pro parametr v aktualizaci, vložení nebo odstranění operace dat, místo předání jednotlivých hodnot z ovládacího prvku vázaného na data.
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
Hodnota vlastnosti
Částečně nebo plně kvalifikovaný název třídy, který identifikuje typ objektu, který ObjectDataSource může použít jako parametr pro Insert(), Update()nebo Delete() operaci. Výchozí hodnota je prázdný řetězec ("").
Příklady
Oddíl obsahuje dva příklady kódu. První příklad kódu ukazuje, jak implementovat typ, který kombinuje všechny hodnoty parametrů do jednoho objektu DataObjectTypeName pomocí vlastnosti. Druhý příklad kódu ukazuje webovou stránku, která používá dvě třídy, které se používají v prvním příkladu kódu.
Následující příklad kódu ukazuje, jak implementovat typ, který kombinuje všechny hodnoty parametrů do jednoho objektu DataObjectTypeName pomocí vlastnosti. Metoda select třídy AggregateData
vrátí DataTable objekt se dvěma sloupci pojmenovanými Name
a Number
. Podobně NewData
třída definuje dvě vlastnosti Name
pro čtení a zápis a Number
. Metoda Insert
AggregateData
třídy přebírá jeden parametr typu NewData
. Vlastnost TypeName
ObjectDataSource je nastavena na AggregateData
a DataObjectTypeName vlastnost je nastavena na 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
Následující příklad kódu ukazuje webovou stránku, která používá dvě třídy, které se používají v předchozím příkladu kódu.
<%@ 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>
Poznámky
Místo zadání několika parametrů předaných do objektu Update, Inserta Delete metod můžete vytvořit jeden objekt, který agreguje několik hodnot datových polí. Tento jeden objekt se předá metodám místo několika parametrů.
Výchozí chování ObjectDataSource ovládacího prvku vázaného na data spočívá v tom, že ovládací prvek vázané na data vytvoří Parameter objekt pro každý parametr ve zdroji dat. Pokud má obchodní objekt mnoho polí, má výsledná metoda také mnoho polí. Vlastnost DataObjectTypeName umožňuje zadat typ, který má vlastnost pro každé datové pole. Místo předání několika parametrů metodě pak modul runtime vytvoří jeden objekt a nastaví všechny jeho vlastnosti. Tento jeden objekt se přidá do kolekce parametrů pro volání metody.
Typ zadaný DataObjectTypeName vlastností musí mít konstruktor bez parametrů, který nemá žádné parametry, takže ObjectDataSource ovládací prvek může vytvořit instanci typu. Typ musí mít také nastavené vlastnosti, které ovládacímu prvku umožňují ObjectDataSource naplnit objekt hodnotami, které jsou předány z ovládacího prvku vázaného na data. Očekává se, že názvy ObjectDataSource vlastností ovládacího prvku přesně odpovídají názvům parametrů hodnot, které jsou předány ovládacím prvku vázaném na data.
DataObjectTypeName Pokud je vlastnost nastavena a ObjectDataSource ovládací prvek je přidružen k ovládacímu prvku vázanému na data, metody, které jsou určené vlastnostmi InsertMethod a DeleteMethod vlastnosti, musí mít jeden parametr typu, který je zadán v DataObjectTypeName vlastnosti. ConflictDetection Pokud je vlastnost nastavena na OverwriteChanges hodnotu, metoda, která je určena UpdateMethod vlastností musí mít jeden parametr typu, který je zadán v DataObjectTypeName vlastnosti. ConflictDetection Pokud je vlastnost nastavena na CompareAllValues hodnotu, metoda, která je určena UpdateMethod vlastností musí mít dva parametry typu, který je zadán v DataObjectTypeName vlastnosti. První parametr obsahuje původní hodnoty; druhý parametr obsahuje nové hodnoty.
Vlastnost DataObjectTypeName deleguje na DataObjectTypeName vlastnost ObjectDataSourceView , která je přidružena k ovládacímu ObjectDataSource prvku.