Ok, je vais essayer de donner une description très bried mais détaillée de ce que j'ai besoin d'accomplir.Source de données d'objet .NET, DetailsView et DropDownList
D'abord, j'ai un contexte de données LinqToSQL défini qui a un objet employé. J'ai ensuite créé un BLL (partiel de l'employé) qui gère mes validations, insertions, mises à jour, etc. Everthing est bon à ce stade. Ensuite, j'ai créé une vue détaillée avec une liaison de source de données d'objet à mes méthodes select/update/insert sur mon objet Employee. C'est bien aussi, les données tirent comme il se doit, les mises à jour, les insertions comme il se doit, sauf pour un problème. J'ai des problèmes avec la liste déroulante à l'intérieur de la vue des détails. Ce sont des champs obligatoires, ne peuvent pas être null. Lorsque cette contrainte est supprimée, le code fonctionne correctement.
Affichage d'extraits de code - champs abrégés pour afficher les informations pertinentes.
<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>
Lorsque la méthode d'insertion est appelée, le empType est toujours retourné comme Nothing (empType est le champ de base de données).
Quelle est la bonne façon d'attacher la valeur de la liste déroulante à mon objet afin qu'il puisse être correctement créé dans la base de données? La plupart de mes recherches ne cessent de me dire comment lier une liste déroulante à une source de données d'objet, mais ce n'est pas ce que je dois faire. Ceci est une liste déroulante de base, 4 éléments qui ne changeront jamais. Serait-il sensé d'utiliser juste une balise de sélection HTML standard ici ou cela pourrait même aider.
Merci de regarder, laissez-moi savoir si vous avez besoin de plus d'informations.
Ce qui me rendait fou! La liste s'est affichée correctement, mais n'a pas pu récupérer la valeur. Je l'ai compris après quelques recherches google astucieux - son posté ci-dessus. Merci d'avoir regardé! – Tommy