私は何百ものGoogle結果ページを分析し、過去2、3日にわたってこれに対する回答を見つけようとしました。外部キーテーブルのフィールドがスタンドアロンのダイナミックデータ対応リストビュー内に表示されない
スタンドアロンの動的データページを使用して、EntityDataSourceを使用してテーブルを表示します。フィールドの1つは、サブテーブルの外部キーです。私はそれがサブテーブルからの値を表示したい。私はNorthWindsデータベースを使って簡単なケースで遊んでいます(下記のコードを参照)。 DynamicControlにDataField = "Supplier"を割り当てると、代わりにサブテーブル/クラス名( "DAL.Supplier")が表示されます。 DataField = "Supplier.CompanyName"を割り当てようとすると、「テーブル 'Product'に 'Supplier.CompanyName'という名前の列がありません」というエラーが表示されます。動的データの編集機能を利用したいので、<%#Eval( "Supplier.CompanyName")%>のテンプレートフィールドを使用しています。
これは単なるスタンドアロンの動的データページでは不可能ですか?完全に足場を張ったシステム内では、明らかに正常に機能します。それとも、私は(うまくいけば)何かを見逃していますか?ありがとうございました。
Test.aspxという
<%@ Page Title="" Language="VB" MasterPageFile="~/Master/Site.master" AutoEventWireup="false" CodeFile="Test.aspx.vb" Inherits="Test" %>
<asp:Content ID="Content3" ContentPlaceHolderID="BodyContent" Runat="Server">
<asp:ListView ID="ListView1" runat="server" DataSourceID="theDataSource" DataKeyNames="ProductID">
<ItemTemplate>
<tr>
<td>
<asp:DynamicControl runat="server" DataField="ProductID" Mode="Edit" />
</td>
<td>
<asp:DynamicControl runat="server" DataField="ProductName" Mode="Edit" />
</td>
<td>
<asp:DynamicControl runat="server" DataField="Supplier" Mode="Edit" />
</td>
<td>
<asp:DynamicControl runat="server" DataField="UnitPrice" Mode="Edit" />
</td>
<td>
<asp:DynamicControl runat="server" DataField="Discontinued" Mode="Edit" />
</td>
</tr>
</ItemTemplate>
<LayoutTemplate>
<table runat="server">
<tr runat="server">
<td runat="server">
<table id="itemPlaceholderContainer" runat="server" border="0">
<tr runat="server">
<th runat="server">
ProductID
</th>
<th runat="server">
ProductName
</th>
<th runat="server">
Supplier
</th>
<th runat="server">
UnitPrice
</th>
<th runat="server">
Discontinued
</th>
</tr>
<tr id="itemPlaceholder" runat="server">
</tr>
</table>
</td>
</tr>
<tr runat="server">
<td runat="server">
</td>
</tr>
</table>
</LayoutTemplate>
</asp:ListView>
<asp:EntityDataSource ID="theDataSource" runat="server"
ConnectionString="name=NorthwindEntities"
DefaultContainerName="NorthwindEntities" EnableDelete="True"
EnableFlattening="False" EnableInsert="True" EnableUpdate="True"
Include="Supplier"
EntitySetName="Products">
</asp:EntityDataSource>
</asp:Content>
Test.aspx.vb
Imports System.Web.DynamicData
Imports DAL
Partial Class Test
Inherits System.Web.UI.Page
Protected table As MetaTable
Protected Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init
Listview1.EnableDynamicData(GetType(Product))
table = theDataSource.GetTable()
Title = table.DisplayName
End Sub
End Class