LINQ:从连接表中选择*然后在转发器中评估它们

时间:2014-12-06 17:16:50

标签: c# asp.net linq

我有以下编译和工作的LINQ语句:

 var X= (from r in DBTableR
         join t in DBTableT on r.TID equals t.ID
         join u in DBTableU on r.UID equals u.ID
         select new { r, t, u }).ToList();
repeater1.DataSource = X;
repeater1.DataBind();

现在,因为查询的格式看起来像X.Object1.r或X.Object1.u

如何从asp.net代码中评估这个? (类似于以下标签中的TEXT字段)

<asp:Label ID="lbl" runat="server" Text=**<%# Eval() %>**></asp:Label>

谢谢!!

1 个答案:

答案 0 :(得分:0)

你可以像这样绑定它: -

<asp:Label ID="lbl" runat="server" Text='<%# Eval("r.YourProperty") %>'></asp:Label>

<asp:Label ID="lbl2" runat="server" Text='<%# Eval("t.YourProperty") %>'></asp:Label>

依旧......

此处,YourProperty将是您要与各个控件绑定的r,t,u个对象中的属性。

仅举例来说,考虑一下我已经绑定到转发器控件及其标记代码的对象: -

var result = from e in emp1
             join d in deps
             on e.DeptId equals d.DeptId
             select new { e, d };
rptTest.DataSource = result;
rptTest.DataBind();

这是MarkUp代码: -

 <asp:Repeater ID="rptTest" runat="server">
    <ItemTemplate>
         <asp:Label ID="lblTest" runat="server" Text='<%# Eval("e.EmployeeID") %>'></asp:Label>
         <asp:Label ID="Label1" runat="server" Text='<%# Eval("d.DeptName") %>'></asp:Label>
     </ItemTemplate>
  </asp:Repeater>