使用中继器,我运行“SelectedUtility”表并输出匹配的位置。 这工作正常,但它显示“Utility_Id”,它是“实用程序表”中“id”的外键。
我实际上想在实用程序表中显示“名称”列。我怎样才能做到这一点...
类似 <th style="width:200px;"><%# Eval("Utility_Id.name") %></th>
或者是在后面的代码中完成的...感谢您的任何回复
aspx:
<asp:Repeater id="rptSelectedUtilities" runat="server">
<HeaderTemplate>
<table class="detailstable FadeOutOnEdit">
<tr>
<th style="width:200px;">Utility</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<th style="width:200px;"><%# Eval("Utility_Id") %></th>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
隐藏代码:
DBData db = new DBDatat();
List<Select_Utility> SelectedUtility =
(from SU in db.Select_Utilities
where SU.Work_Id == 3
select SU).ToList();
rptSelectedUtilities.DataSource = SelectedUtility;
rptSelectedUtilities.DataBind();
编辑:
DBData db = new DBDatat();
List<Utility_Company> Utility = new List<Utility_Company>();
List<Select_Utility> SelectedUtility =
(from SU in db.Select_Utilities
join UTL in Utility on SU equals UTL.id
where SU.Worksite_Id == 3
select SU).ToList();
rptSelectedUtilities.DataSource = SelectedUtility;
rptSelectedUtilities.DataBind();
抛出错误“连接子句中的表达式之一的类型不正确”。调用“join”时类型推断失败
//连接应该是名称..所以在SU上的Utility中加入UTL等于UTL.Name//而不是UTL.id
还尝试在 SU 上的 db.Utility_Companies 中加入 UTL 等于 UTL.id...但出现相同的错误
第二次编辑: <%# Eval("名称") %> 抛出错误:DataBinding:“Select_Utility”不包含名称为“Name”的属性。
DBData db = new DBData();
List<Select_Utility> SelectedUtility =
(from SU in db.Select_Utilities
where SU.Worksite_Id == 3
select SU).ToList();
rptSelectedUtilities.DataSource = SelectedUtility;
rptSelectedUtilities.DataBind();
List<Utility_Company> Utility = new List<Utility_Company>();
var query = from u in db.Utility_Companies
join su in db.Select_Utilities
on u.id equals su.Utility_Id
where su.Worksite_Id == 3
select u;
rptSelectedUtilities.DataSource = query.ToList();
rptSelectedUtilities.DataBind();
最佳答案
查询(您应该选择加入的实用程序):
DBData db = new DBDatat();
var query = from u in db.Utility
join su in db.Select_Utilities
on u.Id equals su.Utility_Id
where su.Work_Id == 3
select u;
rptSelectedUtilities.DataSource = query.ToList();
rptSelectedUtilities.DataBind();
页面(实用程序的显示名称):
<th style="width:200px;"><%# Eval("Name") %></th>
关于asp.net - 使用中继器,获取 FK 并显示该表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15246017/