【发布时间】:2014-01-31 22:05:33
【问题描述】:
我正在尝试使用 LINQ,因此我可以将其绑定到 ASP.NET 下拉列表。
到目前为止;这就是我的 LINQ 表达式;我是 LINQ 的新手,我今天早上开始学习它。
county.DataSource = (from taxUnit in TaxUnits.Descendants("CodeData")
join taxType in TaxTypes.Descendants("CodeData")
on
taxUnit.Attribute("taxuntype").Value
equals
taxType.Attribute("codeid").Value
where taxType.Attribute("taxuntypky").Value == "CO"
select new
{
County = taxUnit.Attribute("desc"),
CodeID = taxUnit.Attribute("codeid")
});
county.DataTextField = "desc";
county.DataValueField = "codeid";
county.DataBind();
最初我试图将其转换为数据表;我被告知您实际上可以直接将 LINQ 绑定到 DropDownList。
<asp:Label AssociatedControlID="county" runat="server">County</asp:Label>
<asp:DropDownList
ID="county"
runat="server" />
到目前为止,结果是……当我查看下拉框时。根据我从 LINQPad 获得的信息,我期望
County CodeID
Willow County 1
CP2 TU 2
当前答案的唯一问题是我不知道它是如何工作的,因此我不明白如何将其转换为我想要的。
我之前能够使用指向此方法的 ObjectDataSource,并为 List 制作了一个模拟,只是为了玩数据绑定。
【问题讨论】:
-
你知道不用中间DataSet就可以直接绑定LINQ结果吗?
-
...不。当我回到我的电脑前,我必须查一下。
-
LINQ 结果类应该具有您绑定的属性。并实现 ILIst,即调用
ToArray()或ToList().但我可能在最后一句话中错了。