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

Класс DataSourceControl

 

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

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

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


[BindableAttribute(false)]
public abstract class DataSourceControl : Control, IDataSource, 
	IListSource

ИмяОписание
System_CAPS_protmethodDataSourceControl()

Инициализирует новый экземпляр класса DataSourceControl.

ИмяОписание
System_CAPS_protpropertyAdapter

Возвращает адаптер браузера для элемента управления.(Наследуется от Control.)

System_CAPS_pubpropertyAppRelativeTemplateSourceDirectory

Возвращает или задает приложению виртуальном каталоге Page или UserControl объект, содержащий этот элемент управления.(Наследуется от Control.)

System_CAPS_pubpropertyBindingContainer

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Возвращает элемент управления, содержащий привязку данных элемента управления.(Наследуется от Control.)

System_CAPS_protpropertyChildControlsCreated

Возвращает значение, указывающее, были ли созданы дочерних элементов серверного элемента управления.(Наследуется от Control.)

System_CAPS_pubpropertyClientID

Возвращает идентификатор серверного элемента управления, созданный ASP.NET.(Переопределяет Control.ClientID.)

System_CAPS_pubpropertyClientIDMode

Это свойство не используется для элементов управления источниками данных.(Переопределяет Control.ClientIDMode.)

System_CAPS_protpropertyClientIDSeparator

Возвращает символьное значение, представляющее разделитель, используемый в ClientID свойство.(Наследуется от Control.)

System_CAPS_protpropertyContext

Возвращает HttpContext объект, связанный с элементом управления сервером для текущего веб-запроса.(Наследуется от Control.)

System_CAPS_pubpropertyControls

Возвращает ControlCollection представляющий дочерние элементы управления для указанного серверного элемента управления в иерархии пользовательского интерфейса.(Переопределяет Control.Controls.)

System_CAPS_pubpropertyDataItemContainer

Возвращает ссылку на контейнер именования, если контейнера именования реализует IDataItemContainer.(Наследуется от Control.)

System_CAPS_pubpropertyDataKeysContainer

Возвращает ссылку на контейнер именования, если контейнера именования реализует IDataKeysControl.(Наследуется от Control.)

System_CAPS_protpropertyDesignMode

Возвращает значение, указывающее, используется ли элемент управления на поверхности разработки.(Наследуется от Control.)

System_CAPS_pubpropertyEnableTheming

Возвращает значение, указывающее, поддерживает ли данный элемент управления темы.(Переопределяет Control.EnableTheming.)

System_CAPS_pubpropertyEnableViewState

Получает или задает значение, указывающее запрашивающему клиенту, сохраняет ли серверный элемент управления состояние представления и состояние представления своих дочерних элементов управления.(Наследуется от Control.)

System_CAPS_protpropertyEvents

Возвращает список делегатов обработчиков событий для элемента управления. Это свойство доступно только для чтения.(Наследуется от Control.)

System_CAPS_protpropertyHasChildViewState

Возвращает значение, указывающее, имеют ли дочерние элементы текущего элемента управления сервера управления параметры сохраненное состояние представления.(Наследуется от Control.)

System_CAPS_pubpropertyID

Возвращает или задает программный идентификатор, назначенный серверному элементу управления.(Наследуется от Control.)

System_CAPS_protpropertyIdSeparator

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Возвращает символ, используемый для разделения идентификаторов элементов управления.(Наследуется от Control.)

System_CAPS_protpropertyIsChildControlStateCleared

Возвращает значение, указывающее, имеют ли элементы управления, содержащихся в этом элементе управления состояние элемента управления.(Наследуется от Control.)

System_CAPS_protpropertyIsTrackingViewState

Возвращает значение, отражающее сохранение изменений в состояние представления серверного элемента управления.(Наследуется от Control.)

System_CAPS_protpropertyIsViewStateEnabled

Возвращает значение, указывающее, включено ли состояние представления для этого элемента управления.(Наследуется от Control.)

System_CAPS_protpropertyLoadViewStateByID

Возвращает значение, указывающее, участвует ли элемент управления в загрузке состояния представления, ID вместо индекса.(Наследуется от Control.)

System_CAPS_pubpropertyNamingContainer

Возвращает ссылку на серверный элемент управления именования элемента контейнера, который создает уникальное пространство имен для различения серверных элементов управления с одинаковым Control.ID значение свойства.(Наследуется от Control.)

System_CAPS_pubpropertyPage

Получает ссылку на Page экземпляр, содержащий серверный элемент управления.(Наследуется от Control.)

System_CAPS_pubpropertyParent

Получает ссылку на родительский элемент управления серверного элемента управления в иерархии элементов управления страницы.(Наследуется от Control.)

System_CAPS_pubpropertyRenderingCompatibility

Возвращает значение, которое указывает, что версия ASP.NET, созданный HTML будут совместимы с.(Наследуется от Control.)

System_CAPS_pubpropertySite

Возвращает сведения о контейнере, который содержит текущий элемент управления при отображении в рабочей области конструирования.(Наследуется от Control.)

System_CAPS_pubpropertySkinID

Возвращает обложку для применения к DataSourceControl элемента управления.(Переопределяет Control.SkinID.)

System_CAPS_pubpropertyTemplateControl

Возвращает или задает ссылку на шаблон, содержащий этот элемент управления.(Наследуется от Control.)

System_CAPS_pubpropertyTemplateSourceDirectory

Получает виртуальный каталог Page или UserControl содержащий текущий элемент управления сервера.(Наследуется от Control.)

System_CAPS_pubpropertyUniqueID

Возвращает уникальный идентификатор иерархии для серверного элемента управления.(Наследуется от Control.)

System_CAPS_pubpropertyValidateRequestMode

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

System_CAPS_protpropertyViewState

Возвращает словарь сведений о состоянии, позволяет сохранять и восстанавливать состояние представления серверного элемента управления нескольких запросов для той же страницы.(Наследуется от Control.)

System_CAPS_protpropertyViewStateIgnoresCase

Возвращает значение, указывающее, является ли StateBag объекта без учета регистра.(Наследуется от Control.)

System_CAPS_pubpropertyViewStateMode

Возвращает или задает режим состояния представления данного элемента управления.(Наследуется от Control.)

System_CAPS_pubpropertyVisible

Возвращает или задает значение, указывающее, отображается ли элемент управления визуально.(Переопределяет Control.Visible.)

ИмяОписание
System_CAPS_protmethodAddedControl(Control, Int32)

Вызывается после добавления дочернего элемента для Controls коллекцию Control объекта.(Наследуется от Control.)

System_CAPS_protmethodAddParsedSubObject(Object)

Уведомляет серверный элемент управления, что элемент XML или HTML был проанализирован, и добавляет элемент в объект ControlCollection серверного элемента управления.(Наследуется от Control.)

System_CAPS_pubmethodApplyStyleSheetSkin(Page)

Применяет свойства стиля, определенные в таблице стилей страницы, к элементу управления.(Переопределяет Control.ApplyStyleSheetSkin(Page).)

System_CAPS_protmethodBeginRenderTracing(TextWriter, Object)

Начинает во время разработки трассировки визуализации данных.(Наследуется от Control.)

System_CAPS_protmethodBuildProfileTree(String, Boolean)

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Собирает сведения о серверном элементе управления и доставляет их в Trace свойству отображаться, когда трассировка включена для страницы.(Наследуется от Control.)

System_CAPS_protmethodClearCachedClientID()

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Задает кэшированное ClientID значение null.(Наследуется от Control.)

System_CAPS_protmethodClearChildControlState()

Удаляет сведения о состоянии элемента управления для серверного элемента управления дочерних элементов управления.(Наследуется от Control.)

System_CAPS_protmethodClearChildState()

Удаляет сведения о состоянии представления и состояние элемента управления для всех серверного элемента управления дочерних элементов управления.(Наследуется от Control.)

System_CAPS_protmethodClearChildViewState()

Удаляет сведения о состоянии представления для всех серверного элемента управления дочерних элементов управления.(Наследуется от Control.)

System_CAPS_protmethodClearEffectiveClientIDMode()

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Наборы ClientIDMode свойство текущего экземпляра элемента управления и любые его дочерние элементы для Inherit.(Наследуется от Control.)

System_CAPS_protmethodCreateChildControls()

Вызывается платформой страницы ASP.NET для уведомления серверных элементов управления, использующих составную реализацию, о необходимости создания дочерних элементов управления, содержащихся в них для обратной передачи или отрисовки.(Наследуется от Control.)

System_CAPS_protmethodCreateControlCollection()

Создает коллекцию для хранения дочерних элементов управления.(Переопределяет Control.CreateControlCollection().)

System_CAPS_pubmethodDataBind()

Привязывает источник данных к вызываемому серверному элементу управления и всем его дочерним элементам управления.(Наследуется от Control.)

System_CAPS_protmethodDataBind(Boolean)

Привязывает источник данных к вызывающим серверным элементом управления и все его дочерние элементы управления с возможностью вызова DataBinding события.(Наследуется от Control.)

System_CAPS_protmethodDataBindChildren()

Привязывает источник данных к дочерним элементам управления серверного элемента управления.(Наследуется от Control.)

System_CAPS_pubmethodDispose()

Включает серверный элемент управления для выполнения окончательной очистки, прежде чем он будет удален из памяти.(Наследуется от Control.)

System_CAPS_protmethodEndRenderTracing(TextWriter, Object)

Заканчивает во время разработки трассировки визуализации данных.(Наследуется от Control.)

System_CAPS_protmethodEnsureChildControls()

Определяет, содержит ли элемент управления сервера дочерних элементов управления. Если нет, создает дочерние элементы управления.(Наследуется от Control.)

System_CAPS_protmethodEnsureID()

Создает идентификатор для элементов управления, которые не имеют назначенного идентификатора.(Наследуется от Control.)

System_CAPS_pubmethodEquals(Object)

Определяет, равен ли заданный объект текущему объекту.(Наследуется от Object.)

System_CAPS_protmethodFinalize()

Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как он будет уничтожен во время сборки мусора.(Наследуется от Object.)

System_CAPS_pubmethodFindControl(String)

Выполняет поиск текущего контейнера именования для серверного элемента управления с указанным id параметр.(Переопределяет Control.FindControl(String).)

System_CAPS_protmethodFindControl(String, Int32)

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Выполняет поиск текущего контейнера именования для серверного элемента управления с указанным id и целое число, указанное в pathOffset параметр, который помогает в поиске. Эта версия не следует переопределять FindControl метод.(Наследуется от Control.)

System_CAPS_pubmethodFocus()

Устанавливает фокус ввода на элемент управления.(Переопределяет Control.Focus().)

System_CAPS_protmethodGetDesignModeState()

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Возвращает данные времени разработки для элемента управления.(Наследуется от Control.)

System_CAPS_pubmethodGetHashCode()

Служит хэш-функцией по умолчанию.(Наследуется от Object.)

System_CAPS_pubmethodGetRouteUrl(Object)

Возвращает URL-адрес, соответствующий набору параметров маршрута.(Наследуется от Control.)

System_CAPS_pubmethodGetRouteUrl(RouteValueDictionary)

Возвращает URL-адрес, соответствующий набору параметров маршрута.(Наследуется от Control.)

System_CAPS_pubmethodGetRouteUrl(String, Object)

Возвращает URL-адрес, соответствующий набору параметров маршрута и имя маршрута.(Наследуется от Control.)

System_CAPS_pubmethodGetRouteUrl(String, RouteValueDictionary)

Возвращает URL-адрес, соответствующий набору параметров маршрута и имя маршрута.(Наследуется от Control.)

System_CAPS_pubmethodGetType()

Возвращает объект Type для текущего экземпляра.(Наследуется от Object.)

System_CAPS_pubmethodGetUniqueIDRelativeTo(Control)

Возвращает в качестве префикса для UniqueID свойства указанного элемента управления.(Наследуется от Control.)

System_CAPS_protmethodGetView(String)

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

System_CAPS_protmethodGetViewNames()

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

System_CAPS_pubmethodHasControls()

Определяет, содержит ли элемент управления сервера дочерних элементов управления.(Переопределяет Control.HasControls().)

System_CAPS_protmethodHasEvents()

Возвращает значение, указывающее, регистрируются ли события для элемента управления или любые его дочерние элементы.(Наследуется от Control.)

System_CAPS_protmethodIsLiteralContent()

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Определяет, если серверный элемент управления содержит только текстовое содержимое.(Наследуется от Control.)

System_CAPS_protmethodLoadControlState(Object)

Восстанавливает сведения о состоянии элемента управления из предыдущего запроса страницы, которые были сохранены в SaveControlState метод.(Наследуется от Control.)

System_CAPS_protmethodLoadViewState(Object)

Восстанавливает сведения о состоянии представления из предыдущего запроса страницы, которые были сохранены в SaveViewState метод.(Наследуется от Control.)

System_CAPS_protmethodMapPathSecure(String)

Получает физический путь, который сопоставляет виртуальный путь, абсолютный или относительный.(Наследуется от Control.)

System_CAPS_protmethodMemberwiseClone()

Создает неполную копию текущего объекта Object.(Наследуется от Object.)

System_CAPS_protmethodOnBubbleEvent(Object, EventArgs)

Определяет, передается ли событие серверного элемента управления вверх по иерархии серверных элементов управления пользовательского интерфейса страницы.(Наследуется от Control.)

System_CAPS_protmethodOnDataBinding(EventArgs)

Вызывает событие DataBinding.(Наследуется от Control.)

System_CAPS_protmethodOnInit(EventArgs)

Вызывает событие Init.(Наследуется от Control.)

System_CAPS_protmethodOnLoad(EventArgs)

Вызывает событие Load.(Наследуется от Control.)

System_CAPS_protmethodOnPreRender(EventArgs)

Вызывает событие PreRender.(Наследуется от Control.)

System_CAPS_protmethodOnUnload(EventArgs)

Вызывает событие Unload.(Наследуется от Control.)

System_CAPS_protmethodOpenFile(String)

Возвращает Stream используется для чтения файла.(Наследуется от Control.)

System_CAPS_protmethodRaiseBubbleEvent(Object, EventArgs)

Назначает любые источники события и сведения для родительского элемента управления.(Наследуется от Control.)

System_CAPS_protmethodRaiseDataSourceChangedEvent(EventArgs)

Вызывает событие DataSourceChanged.

System_CAPS_protmethodRemovedControl(Control)

Вызывается после дочерний элемент управления удаляется из Controls коллекцию Control объекта.(Наследуется от Control.)

System_CAPS_protmethodRender(HtmlTextWriter)

Отправляет содержимое серверного элемента управления в предоставленный объект HtmlTextWriter, который записывает содержимое для отрисовки в клиенте.(Наследуется от Control.)

System_CAPS_protmethodRenderChildren(HtmlTextWriter)

Выводит содержимое дочерних элементов серверного элемента управления в указанный HtmlTextWriter объекту, который записывает содержимое для отображения на клиентском компьютере.(Наследуется от Control.)

System_CAPS_pubmethodRenderControl(HtmlTextWriter)

Выводит содержимое серверного элемента управления в указанный HtmlTextWriter объекта и сохраняет трассировки сведения об элементе управления, если трассировка включена.(Переопределяет Control.RenderControl(HtmlTextWriter).)

System_CAPS_protmethodRenderControl(HtmlTextWriter, ControlAdapter)

Выводит содержимое серверного элемента управления в указанный HtmlTextWriter объекта, используя предоставленную ControlAdapter объекта.(Наследуется от Control.)

System_CAPS_protmethodResolveAdapter()

Возвращает адаптер элемента управления, ответственный за визуализацию указанного элемента управления.(Наследуется от Control.)

System_CAPS_pubmethodResolveClientUrl(String)

Возвращает URL-адрес, который может использоваться браузером.(Наследуется от Control.)

System_CAPS_pubmethodResolveUrl(String)

Преобразует URL-адрес в, доступный для клиента.(Наследуется от Control.)

System_CAPS_protmethodSaveControlState()

Сохраняет любые изменения состояния серверного элемента управления, произошедшие после отправки страницы обратно на сервер.(Наследуется от Control.)

System_CAPS_protmethodSaveViewState()

Сохраняет любые изменения состояния просмотра серверного элемента управления, произошедшие после отправки страницы обратно на сервер.(Наследуется от Control.)

System_CAPS_protmethodSetDesignModeState(IDictionary)

Задает данные времени разработки для элемента управления.(Наследуется от Control.)

System_CAPS_pubmethodSetRenderMethodDelegate(RenderMethod)

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Назначает делегата обработчика событий для преобразования серверного элемента управления и его содержимого в родительский элемент управления.(Наследуется от Control.)

System_CAPS_pubmethodSetTraceData(Object, Object)

Задает данные для разработки трассировка визуализации данных, используя ключ данных трассировки и значение данных трассировки трассировки.(Наследуется от Control.)

System_CAPS_pubmethodSetTraceData(Object, Object, Object)

Задает данные для разработки трассировка визуализации данных, используя объект трассировки, ключ данных трассировки и значение данных трассировки трассировки.(Наследуется от Control.)

System_CAPS_pubmethodToString()

Возвращает строку, представляющую текущий объект.(Наследуется от Object.)

System_CAPS_protmethodTrackViewState()

Вызывает отслеживание изменений состояния представления серверного элемента управления, поэтому они могут храниться в серверном элементе управления StateBag объекта. Этот объект доступен с помощью свойства Control.ViewState.(Наследуется от Control.)

ИмяОписание
System_CAPS_pubeventDataBinding

Происходит при привязке серверного элемента управления к источнику данных.(Наследуется от Control.)

System_CAPS_pubeventDisposed

Происходит при отпускании серверного элемента управления из памяти, который является последней стадии жизненного цикла серверного элемента управления при запросе страницы ASP.NET.(Наследуется от Control.)

System_CAPS_pubeventInit

Происходит при инициализации серверного элемента управления, который является первым этапом жизненного цикла.(Наследуется от Control.)

System_CAPS_pubeventLoad

Происходит при загрузке серверного элемента управления в Page объекта.(Наследуется от Control.)

System_CAPS_pubeventPreRender

Происходит после Control объект загружен, но до подготовки к просмотру.(Наследуется от Control.)

System_CAPS_pubeventUnload

Происходит при выгрузке из памяти серверного элемента управления.(Наследуется от Control.)

ИмяОписание
System_CAPS_pubinterfaceSystem_CAPS_priveventIDataSource.DataSourceChanged

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Происходит при изменении элемента управления источником данных в виде, влияет на элементы управления с привязкой к данным.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIListSource.GetList()

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Возвращает список элементов управления источниками данных, которые могут использоваться в качестве источников списков данных.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIControlDesignerAccessor.GetDesignModeState()

Описание этого члена см. в разделе IControlDesignerAccessor.GetDesignModeState.(Наследуется от Control.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIControlDesignerAccessor.SetDesignModeState(IDictionary)

Описание этого члена см. в разделе IControlDesignerAccessor.SetDesignModeState.(Наследуется от Control.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIControlDesignerAccessor.SetOwnerControl(Control)

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Описание этого члена см. в разделе IControlDesignerAccessor.SetOwnerControl.(Наследуется от Control.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIDataSource.GetView(String)

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Возвращает именованный DataSourceView объекта, связанного с DataSourceControl управления. Некоторые управляющие элементы источников данных поддерживают только одно представление, хотя другие поддерживают более одного.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIDataSource.GetViewNames()

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Возвращает коллекцию имен, представляющих список DataSourceView объекты, связанные с DataSourceControl управления.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIParserAccessor.AddParsedSubObject(Object)

Описание этого члена см. в разделе IParserAccessor.AddParsedSubObject.(Наследуется от Control.)

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIListSource.ContainsListCollection

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Указывает, связан ли элемент управления источником данных с одним или несколькими списками данных.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIControlBuilderAccessor.ControlBuilder

Описание этого члена см. в разделе IControlBuilderAccessor.ControlBuilder.(Наследуется от Control.)

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIControlDesignerAccessor.UserData

Описание этого члена см. в разделе IControlDesignerAccessor.UserData.(Наследуется от Control.)

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIDataBindingsAccessor.DataBindings

Описание этого члена см. в разделе IDataBindingsAccessor.DataBindings.(Наследуется от Control.)

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIDataBindingsAccessor.HasDataBindings

Описание этого члена см. в разделе IDataBindingsAccessor.HasDataBindings.(Наследуется от Control.)

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIExpressionsAccessor.Expressions

Описание этого члена см. в разделе IExpressionsAccessor.Expressions.(Наследуется от Control.)

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIExpressionsAccessor.HasExpressions

Описание этого члена см. в разделе IExpressionsAccessor.HasExpressions.(Наследуется от Control.)

ИмяОписание
System_CAPS_pubmethodFindDataSourceControl()

Возвращает источник данных, связанный с элементом управления данных для указанного элемента управления.(Определено DynamicDataExtensions.)

System_CAPS_pubmethodFindFieldTemplate(String)

Возвращает шаблон поля для заданного столбца в указанный элемент управления в контейнере именования.(Определено DynamicDataExtensions.)

System_CAPS_pubmethodFindMetaTable()

Возвращает объект метатаблицы для контейнерного элемента управления данными.(Определено DynamicDataExtensions.)

System_CAPS_pubmethodGetDefaultValues()

Перегружен. Возвращает коллекцию значений по умолчанию для указанного источника данных.(Определено DynamicDataExtensions.)

System_CAPS_pubmethodGetMetaTable()

Перегружен. Возвращает метаданные для таблицы в заданном объекте источника данных.(Определено DynamicDataExtensions.)

System_CAPS_pubmethodTryGetMetaTable(MetaTable)

Перегружен. Определяет, доступен ли метаданные таблицы.(Определено DynamicDataExtensions.)

ASP.NET supports a control data-binding architecture that enables Web server controls to bind to data in a consistent fashion. Web server controls that bind to data are referred to as data-bound controls, and the classes that facilitate that binding are called data source controls. Data source controls can represent any data source: a relational database, a file, a stream, a business object, and so on. Data source controls present data in a consistent way to data-bound controls, regardless of the source or format of the underlying data.

You use the data source controls that are provided with ASP.NET, including T:System.Web.UI.WebControls.SqlDataSource, T:System.Web.UI.WebControls.AccessDataSource, and T:System.Web.UI.WebControls.XmlDataSource, to perform most Web development tasks. You use the base T:System.Web.UI.DataSourceControl class when you want to implement your own custom data source control.

While any class that implements the T:System.Web.UI.IDataSource interface is a data source control, most ASP.NET data source controls extend the abstract T:System.Web.UI.DataSourceControl class, which provides a base implementation of the T:System.Web.UI.IDataSource interface. The T:System.Web.UI.DataSourceControl class also provides an implementation of the T:System.ComponentModel.IListSource interface, which enables you to programmatically assign the data source control to the DataSource property of a data-bound control and return data to the control as a basic list.

Any ASP.NET control that derives from the T:System.Web.UI.WebControls.DataBoundControl class can bind to a data source control. When a T:System.Web.UI.WebControls.DataBoundControl is bound to a data source control, data binding is performed automatically at run time. You can also use data source controls with ASP.NET controls that expose a DataSource or DataSourceID property and support basic data binding, but are not derived from T:System.Web.UI.WebControls.DataBoundControl. When using these data-bound controls, you must explicitly call the DataBind method. For more information on data binding, see ASP.NET Data Access Content Map.

You can think of a data source control as the combination of the T:System.Web.UI.DataSourceControl object and its associated lists of data, called data source views. Each list of data is represented by a T:System.Web.UI.DataSourceView object. Because the underlying data storage contains one or more lists of data, a T:System.Web.UI.DataSourceControl is always associated with one or more named T:System.Web.UI.DataSourceView objects. The T:System.Web.UI.IDataSource interface defines the methods that all data source controls use to interact with data source views: the M:System.Web.UI.DataSourceControl.GetViewNames method is used to enumerate the data source views currently associated with the data source control, and the M:System.Web.UI.DataSourceControl.GetView(System.String) method is used to retrieve a specific data source view instance by name.

You can also think of the data source control as two distinct interfaces that callers use to access data. The T:System.Web.UI.DataSourceControl class is the interface that page developers interact with directly when developing a Web Forms page, and the T:System.Web.UI.DataSourceView class is the interface that data-bound controls and data-bound control authors interact with. Because the T:System.Web.UI.DataSourceView object is available only at run time, any state persisted for the data source control or data source view must be exposed directly by the data source control.

There is no visual rendering of ASP.NET data source controls; they are implemented as controls so you can create them declaratively, and to optionally allow them to participate in state management. As a result, data source controls do not support visual features such as P:System.Web.UI.DataSourceControl.EnableTheming or P:System.Web.UI.DataSourceControl.SkinID.

The following code example demonstrates how a class can extend the T:System.Web.UI.DataSourceControl class. The CsvDataSource control represents comma-separated file data stored in a .csv file. The CsvDataSource class provides its own implementations of the M:System.Web.UI.DataSourceControl.GetView(System.String), M:System.Web.UI.DataSourceControl.GetViewNames, and other methods, because the base class implementations are not functional.

using System;
using System.Collections;
using System.Data;
using System.IO;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

// The CsvDataSource is a data source control that retrieves its
// data from a comma-separated value file.
[AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)]
public class CsvDataSource : DataSourceControl
{
    public CsvDataSource() : base() {}

    // The comma-separated value file to retrieve data from.
    public string FileName {
        get {
            return ((CsvDataSourceView)this.GetView(String.Empty)).SourceFile;
        }
        set {
            // Only set if it is different.
            if ( ((CsvDataSourceView)this.GetView(String.Empty)).SourceFile != value) {
                ((CsvDataSourceView)this.GetView(String.Empty)).SourceFile = value;
                RaiseDataSourceChangedEvent(EventArgs.Empty);
            }
        }
    }

    // Do not add the column names as a data row. Infer columns if the CSV file does
    // not include column names.
    public bool IncludesColumnNames {
        get {
            return ((CsvDataSourceView)this.GetView(String.Empty)).IncludesColumnNames;
        }
        set {
            // Only set if it is different.
            if ( ((CsvDataSourceView)this.GetView(String.Empty)).IncludesColumnNames != value) {
                ((CsvDataSourceView)this.GetView(String.Empty)).IncludesColumnNames = value;
                RaiseDataSourceChangedEvent(EventArgs.Empty);
            }
        }
    }

    // Return a strongly typed view for the current data source control.
    private CsvDataSourceView view = null;
    protected override DataSourceView GetView(string viewName) {
        if (null == view) {
            view = new CsvDataSourceView(this, String.Empty);
        }
        return view;
    }
    // The ListSourceHelper class calls GetList, which
    // calls the DataSourceControl.GetViewNames method.
    // Override the original implementation to return
    // a collection of one element, the default view name.
    protected override ICollection GetViewNames() {
        ArrayList al = new ArrayList(1);
        al.Add(CsvDataSourceView.DefaultViewName);
        return al as ICollection;
    }
}

// The CsvDataSourceView class encapsulates the
// capabilities of the CsvDataSource data source control.
public class CsvDataSourceView : DataSourceView
{

    public CsvDataSourceView(IDataSource owner, string name) :base(owner, DefaultViewName) {

    }

    // The data source view is named. However, the CsvDataSource
    // only supports one view, so the name is ignored, and the
    // default name used instead.
    public static string DefaultViewName = "CommaSeparatedView";

    // The location of the .csv file.
    private string sourceFile = String.Empty;
    internal string SourceFile {
        get {
            return sourceFile;
        }
        set {
            // Use MapPath when the SourceFile is set, so that files local to the
            // current directory can be easily used.
            string mappedFileName = HttpContext.Current.Server.MapPath(value);
            sourceFile = mappedFileName;
        }
    }

    // Do not add the column names as a data row. Infer columns if the CSV file does
    // not include column names.
    private bool columns = false;
    internal bool IncludesColumnNames {
        get {
            return columns;
        }
        set {
            columns = value;
        }
    }

    // Get data from the underlying data source.
    // Build and return a DataView, regardless of mode.
    protected override IEnumerable ExecuteSelect(DataSourceSelectArguments selectArgs) {
        IEnumerable dataList = null;
        // Open the .csv file.
        if (File.Exists(this.SourceFile)) {
            DataTable data = new DataTable();

            // Open the file to read from.
            using (StreamReader sr = File.OpenText(this.SourceFile)) {
                // Parse the line
                string s = "";
                string[] dataValues;
                DataColumn col;

                // Do the following to add schema.
                dataValues = sr.ReadLine().Split(',');
                // For each token in the comma-delimited string, add a column
                // to the DataTable schema.
                foreach (string token in dataValues) {
                    col = new DataColumn(token,typeof(string));
                    data.Columns.Add(col);
                }

                // Do not add the first row as data if the CSV file includes column names.
                if (! IncludesColumnNames)
                    data.Rows.Add(CopyRowData(dataValues, data.NewRow()));

                // Do the following to add data.
                while ((s = sr.ReadLine()) != null) {
                    dataValues = s.Split(',');
                    data.Rows.Add(CopyRowData(dataValues, data.NewRow()));
                }
            }
            data.AcceptChanges();
            DataView dataView = new DataView(data);
            if (selectArgs.SortExpression != String.Empty) {
                dataView.Sort = selectArgs.SortExpression;
            }
            dataList = dataView;
        }
        else {
            throw new System.Configuration.ConfigurationErrorsException("File not found, " + this.SourceFile);
        }

        if (null == dataList) {
            throw new InvalidOperationException("No data loaded from data source.");
        }

        return dataList;
    }

    private DataRow CopyRowData(string[] source, DataRow target) {
        try {
            for (int i = 0;i < source.Length;i++) {
                target[i] = source[i];
            }
        }
        catch (System.IndexOutOfRangeException) {
            // There are more columns in this row than
            // the original schema allows.  Stop copying
            // and return the DataRow.
            return target;
        }
        return target;
    }
    // The CsvDataSourceView does not currently
    // permit deletion. You can modify or extend
    // this sample to do so.
    public override bool CanDelete {
        get {
            return false;
        }
    }
    protected override int ExecuteDelete(IDictionary keys, IDictionary values)
    {
        throw new NotSupportedException();
    }
    // The CsvDataSourceView does not currently
    // permit insertion of a new record. You can
    // modify or extend this sample to do so.
    public override bool CanInsert {
        get {
            return false;
        }
    }
    protected override int ExecuteInsert(IDictionary values)
    {
        throw new NotSupportedException();
    }
    // The CsvDataSourceView does not currently
    // permit update operations. You can modify or
    // extend this sample to do so.
    public override bool CanUpdate {
        get {
            return false;
        }
    }
    protected override int ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues)
    {
        throw new NotSupportedException();
    }
}

The following code example demonstrates how to use the CsvDataSource control in a Web form.

<%@ Page Language="C#" %>
<%@ Register Tagprefix="aspSample"
             Namespace="Samples.AspNet.CS.Controls" %>

<!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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <asp:gridview
          id="GridView1"
          runat="server"
          allowsorting="True"
          datasourceid="CsvDataSource1" />

      <aspSample:CsvDataSource
          id = "CsvDataSource1"
          runat = "server"
          filename = "sample.csv"
          includescolumnnames="True" />

    </form>
  </body>
</html>

.NET Framework
Доступно с 2.0

Любые открытые статические элементы ( Предоставлен общий доступ в Visual Basic) этого типа являются потокобезопасными. Потокобезопасность элементов экземпляров не гарантируется.

Вернуться в начало
Показ: