2011-08-17 14 views
12

Qual è la differenza di DataSourceID e DataSource dall'attributo dei controlli? Posso usarli in modo intercambiabile?ASP.NET - Qual è la differenza di DataSourceID e DataSource?

Quando provo a impostare la proprietà DataSource in fase di progettazione, digitandola nella pagina di aspx, viene visualizzata un'eccezione che dice "La proprietà 'DataSource' non può essere impostata in modo dichiarativo.". Ma quando uso la finestra delle proprietà per modificare il DataSource, non fa eccezione.

+1

http://blog.tylerholmes.com/2008/06/datasource-vs-datasourceid-internals.html –

risposta

10

DataSource riferisce ad oggetto effettivo di origine di dati che possono essere forniti .Net controlli origine dati (come ObjectDataSource , SqlDataSource) o oggetti dati reali come DataTable, Raccolta di oggetti ecc.

DataSourceID è l'identificatore di stringa per .NET fornito controllo origine dati e questa proprietà esiste in modo che il controllo con associazione a dati e l'origine dati corrispondente possono essere associati a il tempo di progettazione nel markup. Internamente, il controllo cercherebbe il controllo effettivo dell'origine dati utilizzando l'id fornito.

6

DataSourceID può essere assegnato un ID di altro controllo di origine dati di tipo come ObjectDataSourceXmlDataSource.

Data Source comandi Generalità:

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

ci sono vari altri tipi di controlli origine dati come bene o si può sviluppare il proprio così.

Datasource viene utilizzato quando si vuole dare direttamente alla fonte per controllare quali DataSet o un DataTable

1

DataSource: Ottiene o imposta l'oggetto da cui il controllo con associazione a dati recupera la sua lista di elementi di dati. (Ereditato da BaseDataBoundControl.)

DataSourceID: Ottiene o imposta l'ID del controllo da cui il controllo con associazione a dati recupera l'elenco di elementi di dati. (Ereditato da DataBoundControl.)

In secondo luogo possono essere utilizzati interchangeably, ma è necessario utilizzare attentamente. per esempio. Se prima assegna dataSourceID e quindi desidera utilizzare DataSource, quindi prima di utilizzare DataSource, è necessario cancellare la DataSourceID modificando ControlID.DataSourceID = ""

Problemi correlati