在asp.net listview中显示一对多linqdatasource连接表记录

时间:2014-03-24 18:26:21

标签: c# asp.net linq data-binding

我根本不了解asp.net数据绑定,无法找到或计算如何在列表视图中对子表记录进行数据绑定。我已经能够链接数据库中的表键,并且linqdatasource创建向导检测到了这种关系。下面的代码是我得到的那么远/接近,它牦牛了 " DataBinding:' DynamicClass1'不包含名称为' prtitem'的属性。"请求页面时出错。

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="RecentMnBlg.aspx.cs" Inherits="rwhifonline.Prodtctvty.RecentMnBlg" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <asp:LinqDataSource ID="LinqDataSourceNotesAndTags" runat="server" ContextTypeName="sitedbDataContext" EntityTypeName="" Select="new (PKID, NoteText, NoteTags)" TableName="Notes" OrderBy="PKID desc"></asp:LinqDataSource>
    <h3>notes</h3>
    <asp:ListView ID="ListViewNotes" runat="server" DataSourceID="LinqDataSourceNotesAndTags">
        <ItemTemplate>
            <div class="item">
                <br />
                <asp:Label ID="NoteTextLabel" runat="server" Text='<%# Eval("NoteText") %>' />
                <br />
                PRTags:
                <!--<asp:Label ID="PRTagsLabel" runat="server" Text='<%# Eval("PRTags") %>' /> -->
                <% var prtags = (IEnumerable)Eval("PRTags");
                    foreach (object prtitem in prtags) { %> 
                    <asp:Label ID="PRTagsLabel" runat="server" Text='<%# Eval("prtitem.TagText") %>' />       
                <% } %>
                <br />
            </div>
        </ItemTemplate>
        <LayoutTemplate>
            <div id="itemPlaceholderContainer" runat="server">
                <span runat="server" id="itemPlaceholder" />
            </div>
        </LayoutTemplate>
    </asp:ListView>
</asp:Content>

注释位显示: &#34; System.Data.Linq.EntitySet`1 [NoteTag]&#34;在标签上 当页面呈现时没有任何foreach尝试部分。

我在搜索中看到了一些关于使用数据绑定事件的页面,该事件从单独的页面调用中获取一个列表,该事件返回一个数据项列表,但是当有一个linq实体记录时,这似乎过多了。 关于在数据绑定上下文中使用这些实体的任何想法或指示?

1 个答案:

答案 0 :(得分:0)

能够使用IList参数调用方法后面的页面代码,并从每个linq-ed记录返回所需的字符串格式列表