ASP.NET仅插入详细信息视图与下拉列表

时间:2013-04-05 18:25:18

标签: c# asp.net .net entity-framework webforms

我正在使用ASP.NET webforms和Entity Framework。我正在尝试使用详细信息视图只有一个简单的插入表单。我不想编辑,删除或从此详细信息视图中选择条目,仅插入新条目。

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

我有两个实体数据源,一个代表Managers,另一个代表Locations 我在InsertItemTemplate中有两个DropDownLists,可以选择管理器和位置。

我的问题是,当我放置DetailsView(DefaultMode = insert)并为people实体添加数据源时,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>

1 个答案:

答案 0 :(得分: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>