-6ren"> -.NET 4 ASP.NET 我有一个 DetailsView,它显示具有链接查找表的表的 Entity Framework 记录。我有一个 asp:BoundField,其数据字段设置为“linke-6ren">
gpt4 book ai didi

c# - asp.net Entity Framework <%# Bind ("linkedTable.Field") %>

转载 作者:行者123 更新时间:2023-11-30 18:00:47 24 4
gpt4 key购买 nike

.NET 4 ASP.NET

我有一个 DetailsView,它显示具有链接查找表的表的 Entity Framework 记录。我有一个 asp:BoundField,其数据字段设置为“linkedTable.Field”,它显示一个值。

<asp:BoundField DataField="linkedTable.Field" HeaderText="linkedTable.Field" 
SortExpression="linkedTable.Field" />

我试图在 asp:TemplateField 中使用该值,但是当我尝试使用它时:

<asp:TemplateField HeaderText="Field" SortExpression="linkedTable.Field" >
<EditItemTemplate>
<asp:Label runat="server" ID="lblField" Text='<%# Bind("linkedTable.Field") %>' />
</EditItemTemplate>
</asp:TemplateField>

标签中没有显示任何内容。我可以将 Bind() 更改为不属于链接表的字段并且它有效(即“ID”字段)。我的问题是我不明白为什么 linkedtable.Field 值出现在一个上下文中而不是另一个上下文中。

仅供引用,我的数据连接是 EntityDataSource

<asp:EntityDataSource ID="edsNYSEDaily" runat="server" 
ConnectionString="name=ServerDBEntities"
DefaultContainerName="ServerDBEntities" EntitySetName="tblNYSE"
EntityTypeFilter="tblNYSE" EnableUpdate="True" EnableFlattening="true"
AutoGenerateWhereClause="True" Select="" Where="">
<WhereParameters>
<asp:QueryStringParameter DefaultValue="0" Name="ID"
QueryStringField="ID" Type="Int32" />
</WhereParameters>

如果您需要任何其他信息,请告诉我。我卡住了

最佳答案

好的,发现问题了:
需要添加Include="linkedTable"EntityDataSource标签。仍然不确定为什么它甚至在 <asp:DataBound /> 中工作标签。

答案来源:forums.asp.net

正文副本:

you should start here: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.entitydatasource.include.aspx

notice that, you won't be able to Bind (I mean two-way data-binding) the related entities (see the remarks there).

and, you'd have to use a TemplateField for those properties.

see this example (I used the link table 'TableAB' for EntitySetName and included the other two):

    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="EntityDataSource1">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="IDA" HeaderText="IDA" SortExpression="IDA" />
<asp:BoundField DataField="IDB" HeaderText="IDB" SortExpression="IDB" />
<asp:TemplateField HeaderText="TableA Name">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("TableA.NameA") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TableB Name">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("TableB.NameB") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:EntityDataSource ID="EntityDataSource1" runat="server" ConnectionString="name=ABLinkEntities"
DefaultContainerName="ABLinkEntities" EnableDelete="True" EnableFlattening="False"
EnableInsert="True" EnableUpdate="True" EntitySetName="TableABs" Include="TableA,TableB">
</asp:EntityDataSource>

you'll have to re-consider the updates and deletes, you could do them manually.

关于c# - asp.net Entity Framework <%# Bind ("linkedTable.Field") %>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9730498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com