嵌套控件与数据源

时间:2013-02-27 08:56:33

标签: c# asp.net events

下面的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代码中编写的那样。我想念的是什么。我认为问题可能是我没有在这里使用正确的事件?

aspx代码:

       <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();
    }

1 个答案:

答案 0 :(得分:0)

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