2012-01-02 2 views
0

Je peux obtenir l'énumérateur et l'objet en cours mais je ne sais pas ce que l'objet contient, comment puis-je itérer sur une collection lorsque vous ne connaissez pas le type et écrire là-bas des valeurs. Exemple de code serait grand s'il vous plaîtComment Iterate sur IEnumerable dataSource dans CreateChildControls GridView

protected override int CreateChildControls(System.Collections.IEnumerable dataSource, bool dataBinding) 
    { 
     // Call base method and get number of rows 
     int numRows = base.CreateChildControls(dataSource, dataBinding); 

     IEnumerator enumerator = dataSource.GetEnumerator(); 
     while(enumerator.MoveNext() 
     { 
      object obj = enumerator.Currnet as object; 
     } 

     return numRows; 
    } 
} 
+0

Quels sont les résultats que vous voyez? Qu'attendez-vous? – RickNZ

+0

c'est lié à mon autre poste http://stackoverflow.com/questions/8698008/writing-out-the-data-for-each-row-in-custom-gridview-control-and-adding-insert-r i Je ne reçois pas de résultats car je ne sais pas comment mettre les valeurs dans le GridViewRow – ONYX

+0

@RickNZ im de la Nouvelle-Zélande ainsi que wellington – ONYX

Répondre

1

Comme je l'ai dit dans votre autre question, la réponse courte à votre question est "réflexion". C'est ainsi que les outils de liaison de données standard fonctionnent leur magie.

+0

pouvez-vous me donner un lien ou des liens vers des pages qui donnent des exemples – ONYX

+0

vérifier cela http://typedescriptor.net /System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable,Boolean) – ONYX

+0

Le code d'origine utilise des distributions "provisoires" ("as") pour vérifier différents types. C'est une alternative à la réflexion au début, mais parfois ce n'est pas suffisant. – RickNZ