我使用 LINQ 从字符串数组创建了一个 IEnumerable 赛车手列表,如下所示:
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;
我现在只是保持简单。
然后,我将其绑定到 ASP.NET GridView,如下所示:
GV_CurrentF1Drivers.DataSource = result;
GV_CurrentF1Drivers.DataBind();
这很好用。现在我想获取相同的输出(结果)并将其绑定到中继器,但无论我尝试什么,我都无法让中继器工作,并且我认为我缺少对 LINQ 及其如何与 ASP.NET 一起工作的一些关键理解。
下面是完整的 aspx 页面,显示了我到目前为止所到达的位置。请有人(如果可能的话,轻轻地)引导我回到正路吗?
<%@ 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>
我使用以下代码将结果绑定到中继器:
R_CurrentF1Drivers.DataSource = result;
R_CurrentF1Drivers.DataBind();
当我尝试使用中继器运行页面时,出现以下错误:
异常详细信息:System.Web.HttpException:DataBinding:“System.String”不包含名为“driver”的属性。