好的,我将尝试对我需要完成的工作给出一个非常简短而详细的描述。
首先,我定义了一个具有员工对象的 LinqToSQL 数据上下文。然后我创建了一个 BLL(部分员工)来处理我的验证、插入、更新等。此时一切都很好。接下来,我创建了一个详细信息视图,其中对象数据源绑定到我的 Employee 对象上的 select/update/insert 方法。这也很好,数据按应有的方式提取、更新、插入,除了一个问题。我在详细信息视图中的下拉列表中遇到问题。这些是必填字段,不能为空。当该约束被删除时,代码运行正常。
详细信息视图的代码片段 - 字段缩写以显示相关信息。
<asp:DetailsView ID="grd_empDetails" runat="server" DataSourceID="empDataSource" DataKeyNames="EmployeeID" DefaultMode="Insert" AutoGenerateRows="false">
<Fields>
<asp:BoundField HeaderText="First Name" DataField="FirstName" />
<asp:TemplateField HeaderText="Type of Employee">
<ItemTemplate>
<asp:DropDownList ID="empType" runat="server" DataValueField="empType" AppendDataBoundItems="true">
<asp:ListItem Text="Full Time" Value="1" />
<asp:ListItem Text="Part Time" Value="2" />
<asp:ListItem Text="Subcontractor or 1099" Value="3" />
<asp:ListItem Text="Intern" Value="4" />
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowInsertButton="true" ShowCancelButton="true" />
</Fields>
</asp:DetailsView>
调用 insert 方法时,empType 始终返回为 Nothing(empType 是数据库字段)。
将下拉列表的值附加到我的对象以便它可以在数据库中正确创建的正确方法是什么?我的大部分搜索一直告诉我如何将下拉列表绑定到对象数据源,但这不是我需要做的。这是一个基本的下拉列表,4 个项目永远不会改变。在这里只使用标准的 HTML 选择标记是否有意义,或者甚至会有所帮助。
感谢您的关注,如果您需要更多信息,请告诉我。