2010-07-13 4 views
2

J'ai un GridView qui remplit LINQ Opération GridView

ID Name City 
1 Bobby AAA 
2 Laura BBB 
3 Ilisha CCC 

Je veux obtenir une chose collection dénombrable comme suit

var Query= from p in GridView1.Rows 
    select new { User_ID=p.ID,User_Name=p.Name,User_City=p.City }.ToList(); 

Comment obtenir?

Merci d'avance.

Répondre

1

Si vous essayez d'utiliser l'objet réel représenté par la ligne de la grille, vous devez accéder à la propriété DataItem de la ligne.

var query = from p in GridView1.Rows.Select(r => r.DataItem as YourDataType) 
      select new 
      { 
       User_ID=p.ID, 
       User_Name=p.Name, 
       User_City=p.City 
      }.ToList() 

(YourDatatype ici représente quelque soit le type d'objet que vous vous attendez à la grille à être lié à).

0

Vous êtes sur la bonne voie avec la requête.

La seule suggestion serait d'essayer d'utiliser la source d'origine qui se lie au gridview au lieu de compter sur gridview.DataSource

2

Pour avoir une collection dénombrable, tout ce que vous devez faire est jeté le GridViewRowCollection à un IEnumerable .

IEnumerable<GridViewRow> rows = GridView1.Rows.Cast<GridViewRow>() 
+0

Je viens juste de me lancer, savez-vous pourquoi nous devons lancer ceci en premier lieu? 'GridViewRowCollection' hérite de' IEnumerable'. Ne devrions-nous pas être en mesure de «LINQ» directement? – shotor

Questions connexes