1

我正在使用 ASP.NET 网络表单和实体框架。我正在尝试使用详细信息视图创建一个简单的插入表单。我不想在此详细信息视图中编辑、删除或选择条目,只想插入新条目。

在插入中,我想插入新的人。一个人的结构是:姓名、经理、位置

我有两个实体数据源,一个代表经理,一个代表位置 我在 InsertItemTemplate 中有两个 DropDownList,可以选择经理和位置。

我的问题是,当我放置 DetailsView (DefaultMode = insert) 并为人员实体添加数据源时,DetailsView 会显示数据库中的条目以及下拉列表和名称字段。我可能遗漏了一些简单的东西,但我似乎无法获得仅用于插入的 DetailsView,它的 DropDownLists 由其他实体数据源填充。

 <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" 
        DefaultMode="Insert" AutoGenerateInsertButton="True">
        <Fields>
            <asp:BoundField DataField = "Name" />
            <asp:TemplateField>
                <InsertItemTemplate>
                    <asp:DropDownList DataSourceID = "ManagerEntitySource" runat="server" />
                </InsertItemTemplate>
                <InsertItemTemplate>
                    <asp:DropDownList DataSourceID = "LocationEntitySource" runat="server" />
                </InsertItemTemplate>
            </asp:TemplateField>
        </Fields>
    </asp:DetailsView>
    <asp:EntityDataSource ID="AddEmployeeDataSource" runat="server" 
        ConnectionString="name=SafetyEntities" DefaultContainerName="SafetyEntities" 
        EnableFlattening="False" EnableInsert="True" EntitySetName="Employees">
    </asp:EntityDataSource>
4

1 回答 1

0

不确定这是否有帮助,但如果您只想要插入模式,请尝试删除 AutoGenerateInsertButton 属性,并在 Fields 属性中添加 ShowInsertButton = True 的 CommandField。

<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" 
    DefaultMode="Insert">
    <Fields>
        <asp:BoundField DataField = "Name" />
        <asp:TemplateField>
            <InsertItemTemplate>
                <asp:DropDownList DataSourceID = "ManagerEntitySource" runat="server" />
            </InsertItemTemplate>
            <InsertItemTemplate>
                <asp:DropDownList DataSourceID = "LocationEntitySource" runat="server" />
            </InsertItemTemplate>
        </asp:TemplateField>
        <asp:CommandField ShowInsertButton="True" />
    </Fields>
</asp:DetailsView>
于 2013-04-30T01:54:17.377 回答