将两个sql表数据绑定到一个转发器

时间:2010-10-26 16:53:55

标签: c# asp.net linq-to-sql repeater

我是使用Linq-to-SQL的新手,这就是我问这个问题的原因。我搜索了网站,但似乎无法弄清楚如何做到这一点。

我的问题是:

我有一个使用LINQ to SQL映射的数据库:

表1:PersonalTask​​s

TaskId
Header
[Content]
IsDone
CreatedDate

表2:评论

CommentId
TaskId
UserId
Comment
CreatedDate

我有一个转发器:

<asp:Repeater ID="PersonalTaskRepeater" runat="server">
   <ItemTemplate>
      <%#Eval("Header") %>
      <%# Eval("Content") %>
      Task done: <asp:CheckBox ID="IsDoneCheckBox" runat="server" Checked='<%#Eval("IsDone") %>' /><img src="Images/tick-circle.png" />

     Here i want to access the comment table, with the comments related to the taskID
   </ItemTemplate>
</asp:Repeater>

我尝试过使用:<%#Eval("Comment.Comment1")%>,但会抛出此错误:

  

数据绑定:   “System.Data.Linq.EntitySet`1 [[Assistr.Models.Comment,   Assistr,版本= 1.0.0.0,   文化=中性,   PublicKeyToken = null]]'没有   包含具有名称的属性   '注释'。

我的代码隐藏:

var tasks = db.PersonalTasks.OrderBy(x => x.IsDone).ToList();
                PersonalTaskRepeater.DataSource = tasks;
                PersonalTaskRepeater.DataBind();

我需要使用2个中继器来做我想做的事情吗? :)

提前致谢:)

//的Mads

1 个答案:

答案 0 :(得分:0)

我相信如果你想在同一个转发器中使用东西,你必须准备数据源,以便数据有效地联合起来并使用相同的字段名称。 如果2组数据不同,为什么要将它们放在同一个中继器中呢?你想做什么。