Подтвердить что ты не робот

ASP.NET - В чем разница между DataSourceID и DataSource?

В чем отличие DataSourceID и DataSource от атрибута управления? Могу ли я использовать их взаимозаменяемо?

Когда я пытаюсь установить свойство DataSource во время разработки, набрав его на странице aspx, я получаю исключение, в котором говорится, что свойство "DataSource" не может быть объявлено декларативно ". Но когда я использую окно свойств для изменения DataSource, он не дает никаких исключений.

4b9b3361

Ответ 1

DataSource относится к фактическому объекту источника данных, который может быть предоставлен .NET с элементами управления источником данных (такими как ObjectDataSource, SqlDataSource) или фактическими объектами данных, такими как DataTable, Collection of objects и т.д.

DataSourceID - это строковый идентификатор для .NET, обеспечивающий контроль источника данных, и это свойство существует, чтобы связанный с данными контроль и соответствующий источник данных могли быть связаны во время разработки в разметке. Внутренне контроль будет искать фактическое управление источником данных с использованием предоставленного идентификатора.

Ответ 2

DataSourceID может быть назначен идентификатор другого элемента управления источником данных типа ObjectDataSource XmlDataSource.

Обзор элементов управления источниками данных:

http://msdn.microsoft.com/en-us/library/ms227679.aspx

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

Datasource используется, когда вы хотите напрямую указать источник для управления, например DataSet или DataTable

Ответ 3

DataSource: Получает или задает объект, из которого элемент управления, связанный с данными, получает список элементов данных. (Унаследовано от BaseDataBoundControl.)

DataSourceID: Получает или задает идентификатор элемента управления, из которого элемент управления, связанный с данными, получает список элементов данных. (Унаследовано от DataBoundControl.)

Во-вторых, их можно использовать interchangeably, но вы должны использовать их осторожно. например Если вы сначала назначили dataSourceID, а затем хотите использовать DataSource, то перед использованием DataSource вам нужно очистить идентификатор источника данных, установив ControlID.DataSourceID = ""