好的,我將嘗試給出一個非常詳盡的描述,說明我需要完成什麼。.NET對象數據源,DetailsView和DropDownList
首先,我定義了一個LinqToSQL datacontext,它有一個僱員對象。然後我創建了一個BLL(部分員工)來處理我的驗證,插入,更新等。Everthing在這一點上是很好的。接下來,我創建了一個具有綁定到我的Employee對象的select/update/insert方法的對象數據源的detailsview。這也不錯,數據會像它應該的一樣,更新,像插入一樣,除了一個問題。我在詳細信息視圖中的下拉列表中遇到問題。這些是必填字段,不能爲空。當這個約束被刪除時,代碼的功能就很好。
詳細信息視圖的代碼片段 - 縮寫爲顯示相關信息的字段。
<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是數據庫字段)。
將dropdownlist的值附加到我的對象的正確方法是什麼,以便它可以在數據庫中正確創建?我的大部分搜索都會告訴我如何將下拉列表綁定到對象數據源,但這不是我需要做的。這是一個基本的下拉列表,4個項目永遠不會改變。在這裏只使用一個標準的HTML選擇標籤是否有意義,或者甚至會有幫助。
感謝您的關注,如果您需要更多信息,請告知我。
那是什麼讓我瘋狂!列表正確顯示,但無法從中取回值。我經過一些狡猾的谷歌搜索後發現了它 - 它在上面發佈。感謝您的期待! – Tommy 2009-10-03 21:14:38