【发布时间】:2009-04-11 15:12:49
【问题描述】:
我有一个绑定到返回客户集合的 LINQDataSource 控件的 GridView。
在我的 DataGrid 中,我需要显示客户的家庭电话号码(如果他们有的话)。客户的电话号码存储在一个单独的表中,外键指向客户表。
以下绑定表达式为我获取客户的第一个电话号码:
<asp:TemplateField HeaderText="LastName" SortExpression="LastName">
<ItemTemplate>
<asp:Label ID="PhoneLabel" runat="server" Text='<%# Eval("Phones[0].PhoneNumber") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
我需要弄清楚如何具体获取家庭电话号码(根据电话类型过滤)并处理客户在数据库中没有家庭电话的情况。现在,如果客户没有任何电话号码,它会抛出超出范围的异常。
我尝试使用带有 lambda 表达式的 Where 运算符来过滤电话类型,但它不起作用:
<%# Eval("Phones.Where(p => p.PhoneTypeId == 2).PhoneNumber") %>
非常感谢您提供有关该主题的任何优秀文章的解决方案或链接。
【问题讨论】:
-
哪些数据字段会返回您的 LinqDataSource?
标签: asp.net linq-to-sql data-binding