J'ai créé une liste IEnumerable des pilotes de course en utilisant LINQ à partir d'un tableau de chaînes en tant que telle ci-dessous:Je suis en train d'apprendre comment lier une collection LINQ IEnumerable à un répéteur
string[] driverNames = {
"Lewis Hamilton",
"Heikki Kovalainen",
"Felipe Massa",
"Kimi Raikkonen",
"Robert Kubica",
"Nick Heidfeld",
"Fernando Alonso",
"Nelson Piquet Jr",
"Jarno Trulli",
"Timo Glock",
"Sebastien Bourdais",
"Sebastien Buemi",
"Mark Webber",
"Sebastian Vettel",
"Nico Rosberg",
"Kazuki Nakajima",
"Adrian Sutil",
"Giancarlo Fisichella",
"Jenson Button",
"Rubens Barrichello"
};
IEnumerable<string> result = from driver in driverNames
orderby driver
select driver;
Je suis juste garder les choses simples pour l'instant.
comme si je lie ci-dessous puis à un ASP.NET GridView:
GV_CurrentF1Drivers.DataSource = result;
GV_CurrentF1Drivers.DataBind();
Cela fonctionne très bien. Maintenant, je veux prendre la même sortie (résultat) et la lier à un répéteur, mais peu importe ce que j'essaie, je ne peux pas obtenir le répéteur de travailler et je pense qu'il me manque une compréhension clé de LINQ et comment cela fonctionne avec ASP.NET .
Ci-dessous la page ASPX complète pour montrer où je dois aller jusqu'à présent. S'il vous plaît quelqu'un peut (doucement si possible) me guider sur le chemin?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Example1.aspx.cs" Inherits="Example1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div style="float: left;">
<asp:GridView ID="GV_CurrentF1Drivers" runat="server" />
</div>
<div style="float: left;">
<asp:Repeater ID="R_CurrentF1Drivers" runat="server">
<ItemTemplate>
<%# Eval("driver") %></ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
J'utilise le code suivant pour lier le résultat au répéteur:
R_CurrentF1Drivers.DataSource = result;
R_CurrentF1Drivers.DataBind();
je reçois l'erreur suivante lorsque je tente de lancer la page avec le répéteur dans:
Exception Détails: System.Web.HttpException: DataBinding: 'System.String' ne contient pas de propriété portant le nom 'driver'.
var = du pilote dans driverNames? où est le nom de la variable? var foo = du pilote dans driverNames, éditez-le guy;) – Sadegh
Désolé quand j'essaye ce code je reçois "Erreur \t 1 Impossible de convertir implicitement le type 'System.Collections.Generic.IEnumerable' en 'System.Collections .Generic.IEnumerable 'Une conversion explicite existe (manque-t-il une distribution?) " –
Je dois utiliser un nom différent de celui du pilote en minuscule. –