Hey guys,
j'ai un truc qui me casse la tete, et a qui je trouve pas de solutions. je sais que je peux le faire autrement avec les procedure stocké mais je veux et avec votre aide biensure lui trouvé une solution sans allé faire des ps
Donc g un Formview dans lequel je modifi le InsertTemplate (un champs text remplacé par Downdroplist que je rempli apartir d'une table),
J'ai modifier la proprieté de defaultmode du FormView Insert. le code ASP est le suivat:
<asp:FormView ID="FormView1" runat="server" DataKeyNames="ClassID" DataSourceID="SqlDataSource3"
Width="330px" DefaultMode="Insert">
<EditItemTemplate>
ClassID:
<asp:Label ID="ClassIDLabel1" runat="server" Text='<%# Eval("ClassID") %>'></asp:Label><br />
ClasseName:
<asp:TextBox ID="ClasseNameTextBox" runat="server" Text='<%# Bind("ClasseName") %>'>
</asp:TextBox><br />
Description:
<asp:TextBox ID="DescriptionTextBox" runat="server" Text='<%# Bind("Description") %>'>
</asp:TextBox><br />
LevelID:
<asp:TextBox ID="LevelIDTextBox" runat="server" Text='<%# Bind("LevelID") %>'>
</asp:TextBox><br />
SchoolID:
<asp:TextBox ID="SchoolIDTextBox" runat="server" Text='<%# Bind("SchoolID") %>'>
</asp:TextBox><br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update"
Text="Update">
</asp:LinkButton>
<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
Text="Cancel">
</asp:LinkButton>
</EditItemTemplate>
<InsertItemTemplate>
ClasseName:
<asp:TextBox ID="ClasseNameTextBox" runat="server" Text='<%# Bind("ClasseName") %>'></asp:TextBox><br />
Description:
<asp:TextBox ID="DescriptionTextBox" runat="server" Text='<%# Bind("Description") %>'></asp:TextBox><br />
LevelName:
<asp:DropDownList ID="LevelNameDropDownList" runat="server" DataSourceID="SqlDataSource2"
DataTextField="Name" DataValueField="LevelID"> </asp:DropDownList><br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
Text="Insert"></asp:LinkButton>
<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
Text="Cancel"></asp:LinkButton>
</InsertItemTemplate>
<ItemTemplate>
ClassID:
<asp:Label ID="ClassIDLabel" runat="server" Text='<%# Eval("ClassID") %>'></asp:Label><br />
ClasseName:
<asp:Label ID="ClasseNameLabel" runat="server" Text='<%# Bind("ClasseName") %>'></asp:Label><br />
Description:
<asp:Label ID="DescriptionLabel" runat="server" Text='<%# Bind("Description") %>'></asp:Label><br />
LevelID:
<asp:Label ID="LevelIDLabel" runat="server" Text='<%# Bind("LevelID") %>'></asp:Label><br />
SchoolID:
<asp:Label ID="SchoolIDLabel" runat="server" Text='<%# Bind("SchoolID") %>'></asp:Label><br />
<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit"
Text="Edit"></asp:LinkButton>
<asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False" CommandName="Delete"
Text="Delete"></asp:LinkButton>
<asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New"
Text="New"></asp:LinkButton>
</ItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:conn %>"
SelectCommand="SELECT [LevelID], [Name], [SchoolID] FROM [Levels] WHERE ([SchoolID] = @SchoolID)">
<SelectParameters>
<asp:SessionParameter Name="SchoolID" SessionField="SchoolID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:conn %>"
InsertCommand="INSERT INTO [Classes] ([ClasseName], [Description], [LevelID], [SchoolID]) VALUES (@ClasseName, @Description, @LevelID, @SchoolID)"
OldValuesParameterFormatString="original_{0}">
<InsertParameters>
<asp:Parameter Name="ClasseName" Type="String" />
<asp:Parameter Name="Description" Type="String" />
<asp:Parameter Name="LevelID" Type="Int32" />
<asp:SessionParameter Name="SchoolID" SessionField="SchoolID" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
Et l'erreur lors de l'insert est :
Impossible d'insérer la valeur NULL dans la colonne 'LevelID', table 'myDB.dbo.Classes'. Cette colonne n'accepte pas les valeurs NULL. Échec de INSERT.
L'instruction a été arrêtée.
Ou je peux poser la question autrement, Comment peut t on binder un dropdownlist pour utiliser sa proprieté selectedValue dans l'instruction insert de mon datasource.
Merci pour a ce qui on lu mon message, et un grand merci pour ceux qui essaye de m'aider ou de me donné des pistes

--
Waguila Was and he's still in Schlumberger