2012-03-16 7 views
3

.NET 4 ASP.NETasp.netエンティティ・フレームワーク<%#バインド( "linkedTable.Field")%>

Iは、リンクされたルックアップを持つテーブルのエンティティフレームワークレコードを表示されたDetailsViewを有します表。私は、 "linkedTable.Field"として設定されたデータフィールドを持つasp:BoundFieldを持っており、値を表示します。

<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値が1つのコンテキストで表示され、他のコンテキストでは表示されないのか分かりません。

FYI、私のデータ接続を使用すると、他の情報が必要な場合は、私に教えてください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> 

です。私はつまらないです

答えて

1

[OK]をクリックして問題を発見しました。
EntityDataSourceタグにInclude="linkedTable"を追加する必要がありました。なぜそれが<asp:DataBound />タグで働いていたのかまだ分かりません。答えを

出典:テキストのforums.asp.net

コピー:

あなたはここに開始する必要があります:あなたがバインドすることはできません、というhttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.entitydatasource.include.aspx

通知を(私は2つの意味-wayデータバインディング)関連するエンティティ(そこに備考を参照)。

これらのプロパティにはTemplateFieldを使用する必要があります。

(私はリンクテーブルEntitySetNameのための「TableAB」を使用し、他の二つを含む)は、この例を参照してください。

<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> 

あなたは再検討し更新および削除する必要があります、あなたそれらを手動で行うことができます。

関連する問題