2010-10-22 28 views

risposta

20

This article potrebbe aiutarti a capire. Citazione:

Quindi, qual è esattamente questa espressione? Il valore <% #%> indica un'espressione DataBinding e Container.DataItem è un alias per l'elemento corrente nell'origine dati. In altre parole, se si sta vincolando a una raccolta di oggetti Container.DataItem è la riga corrente della raccolta .

This blog entry fornisce assistenza su quando utilizzare. Codice:

Container.DataItem è un alias di runtime per DataItem per questo elemento specifico nell'elenco associato. Per una griglia che visualizza 10 righe di dati , questa è una riga dall'origine dati. Il tipo effettivo di DataItem è determinato dal tipo di origine dati. Ad esempio, se l'origine dati è una Vista dati, il tipo di DataItem è DataRowView. Se il tipo di origine dati è una matrice di stringhe, il tipo di DataItem è String. Se l'origine dati è una raccolta di oggetti con valore tipografico (ad esempio oggetti "Dipendenti"), il tipo di dati è DataItem.

Ciascuno di questi casi richiede un'espressione di associazione leggermente diversa, , con ulteriori differenze tra VB e C#.

+0

che cosa fa l'elemento corrente nell'origine dati significa esattamente? –

+2

@chandan - Beh, se è un array di string {'a', 'b', 'c'}, allora currentitem è quello che sta attualmente processando. Potrebbe essere a, bec in quel punto del tempo. Questo risponde alla tua domanda? –

+0

intendi l'elemento corrente che viene elaborato in fase di runtime per associare un particolare dato da un'origine dati. –

4

Mi sono imbattuto in questa stessa domanda specificamente nel contesto di provare ad accedere a Container.DataItem dal code-behind. Container esiste nel codice aspx/ascx ma non esiste all'interno del code-behind. Osservando il codice C# generato, ho visto che si tratta di un riferimento casted a BindingContainer sul controllo specifico associato.

Equivalente code-behind codice per Container.DataItem è questo:

var ddl = (DropDownList) source; 
var dataItem = ((RepeaterItem) ddl.BindingContainer).DataItem; 
Problemi correlati