0

下面的 aspx 代码中的这个 ListView 嵌套在另一个 ListView 中。下面的代码用于包装嵌套的 ListView。我希望在每次迭代时,包装器 ListView 都在嵌套 ListView 的数据源中传递属性“Comments”。我尝试使用事件“ItemDataBound”的代码隐藏来执行此操作(此事件用于包装器 ListView)但是,当我运行代码时,我得到了这个异常:DataBinding:'System.Collections.Generic.HashSet`1[ [BlogProfile.Data.Comment, BlogProfile.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' 不包含名为“Author”的属性。我想要的只是每次包装器 ListView 将不同的数据源传递给嵌套的 ListView,而这个嵌套的 ListView 用“Eval(...)”来获取这个数据源,就像我在 aspx 代码中写的那样。我在这里想念什么。我认为问题可能是我在这里没有使用正确的事件?

asp代码:

       <asp:ListView ID="CommentListView" runat="server" >
             <ItemTemplate>
                 <div class="postComments">
                     <span class="authorComment"><%# Eval("Author") %></span>
                       :
                      <span class="commentContent"><%# Eval("Message") %></span>
                 </div>
              </ItemTemplate>
       </asp:ListView>

后面的代码:

   protected void PostsListView_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        BlogProfileEntities blogProfile = new BlogProfileEntities();
        var listview = e.Item.FindControl("CommentListView") as ListView;
        var hiddenfield = e.Item.FindControl("CurrentPostIDHiddenField") as HiddenField;
        int id = int.Parse(hiddenfield.Value);
        listview.DataSource = (from p in blogProfile.Posts
                               where p.PostID == id
                               select p.Comments).ToList();
        listview.DataBind();
    }
4

1 回答 1

0

此问题基于您的实体框架。它发生在将 ADO.NET 实体固件组件添加到您的系统中时。请再次阅读该组件。还要检查在您的实体 FW 中添加的表列名称

于 2013-02-27T09:05:05.953 回答