Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Свойство ObjectDataSource.DataObjectTypeName

 

Опубликовано: Октябрь 2016

Возвращает или задает имя класса, ObjectDataSource элемент управления использует в качестве параметра в обновления, вставки или удаления данных операции, вместо передачи отдельных значений из элемента управления с привязкой к данным.

Пространство имен:   System.Web.UI.WebControls
Сборка:  System.Web (в System.Web.dll)

public string DataObjectTypeName { get; set; }

Значение свойства

Type: System.String

Класс частичное или полное имя, определяющее тип объекта, ObjectDataSource можно использовать в качестве параметра для Insert, Update, или Delete операции. Значение по умолчанию — пустая строка ("").

Вместо указания нескольких параметров, передаваемых в Update, Insert, и Delete методов, можно создать один объект, объединяющий несколько значений полей данных. Для методов, вместо нескольких параметров передается один объект.

По умолчанию ObjectDataSource элемента управления, к которому привязан элемент управления с привязкой к данным — что создает элемент управления с привязкой к данным Parameter объекта для каждого параметра в источнике данных. Если бизнес-объект имеет множество полей, результирующего метода также будет много полей. DataObjectTypeName Позволяет указать тип, который имеет свойство для каждого поля данных. Затем вместо передачи методу нескольких параметров, среда выполнения создает один объект и задает все его свойства. Один объект добавляется в коллекцию параметров для вызова метода.

Тип, который задается параметром DataObjectTypeName свойство должно иметь конструктор по умолчанию, который не имеет параметров, поэтому ObjectDataSource управления можно создать экземпляр типа. Тип должен также иметь настраиваемые свойства, которые позволяют ObjectDataSource управления для заполнения объекта со значениями, которые передаются из элемента управления с привязкой к данным. Свойство имени на ObjectDataSource управления должны точно совпадать с именами параметров значений, переданных элементом управления с привязкой к данным.

Когда DataObjectTypeName свойств и ObjectDataSource элемента управления связано с элементом управления с привязкой к данным, методы, которые указываются с помощью InsertMethod и DeleteMethod свойства должны иметь один параметр типа, который указан в DataObjectTypeName свойство. Если ConflictDetection свойству OverwriteChanges значение метод, который задается параметром UpdateMethod свойство должно иметь один параметр типа, который указан в DataObjectTypeName свойство. Если ConflictDetection свойству CompareAllValues значение метод, который задается параметром UpdateMethod свойство должно быть два параметра типа, который указан в DataObjectTypeName свойство. В первом параметре содержатся исходные значения; Второй параметр содержит новые значения.

DataObjectTypeName Делегирует свойство DataObjectTypeName свойство ObjectDataSourceView связанный с ObjectDataSource управления.

Раздел содержит два примера кода. В первом примере кода показано, как реализовать тип, объединяющий все значения параметров в один объект с помощью DataObjectTypeName свойство. Во втором примере кода показана веб-страница, которая использует два класса, используемые в первом примере кода.

В следующем примере кода показано, как реализовать тип, объединяющий все значения параметров в один объект с помощью DataObjectTypeName свойство. Выберите метод AggregateData возвращает DataTable объект с двумя столбцами с именем Name и Number. Аналогичным образом 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; }
		}

	}
}

В следующем примере кода показана веб-страница, которая использует два класса, используемые в предыдущем примере кода.

<%@ 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>

.NET Framework
Доступно с 2.0
Вернуться в начало
Показ: