0

我对 asp.net 很陌生,但我发现为现有数据库设置一个脚手架网站非常简单。我已经启动并运行了。

让事情按我想要的方式工作有点棘手。我有一张Customer与桌子有一对多关系的ContactMoment桌子。默认情况下,Customer显示链接以查看的详细视图(默认情况下在调用ContactMoments中定义)。我想要的是包括所有.FieldTemplateChildrenListViewContactMoments

我尝试了以下方法:

<asp:ListView runat="server" ID="DynamicControl2" DataMember="ContactMoment" />

这不起作用。我可能需要使用DataSourceID,但我不知道如何从当前实体中检索它。有人能指出我正确的方向吗?谢谢 :)

更新:我刚刚发现动态数据扩展列出了以下有趣的部分。(不幸的是,该项目似乎被放弃了..)

  1. ChildrenList – 提供一种显示子表的方法,与新的编辑和详细信息页面模板结合使用。
4

1 回答 1

1

你需要添加一个额外的数据源和 Listview 控件来获得你想要的结果..

我没有尝试过此代码,但它应该可以工作...根据您的实际名称更改实体名称..

<asp:EntityDataSource ID="ContactMomentDataSource" runat="server"  
        ContextTypeName="YourEntities" EnableFlattening="False"  
        EntitySetName="ContactMoment"  
        Where="@CustomerID IN (SELECT VALUE Customer.CustomerID FROM it.Customer  AS Customer)"> 
        <WhereParameters> 
            <asp:ControlParameter ControlID="YourDetailView" Type="Int32" Name="CustomerID" PropertyName="SelectedValue" /> 
        </WhereParameters> 
    </asp:EntityDataSource>

<asp:ListView ID="ContactMomentListView" runat="server"  
        DataSourceID="ContactMomentDataSource" 
        AllowSorting="True" AutoGenerateColumns="False" 
        SelectedRowStyle-BackColor="LightGray"  
        DataKeyNames="ContactMomentID"> 
        </asp:ListView>

现在您只需要添加要在 Listview 的标记中显示的 Column ..

希望这可以帮助...

于 2012-08-27T18:39:40.657 回答