Bonjour,
J'ai créé un formulaire ASP qui utilise un contrôle DetailView. Ce contrôle contient des templates pour les champs, notamment des listes déroulantes sont utilisées pour la saisie.
Lors de la mise à jour d'un enregistrement de la table, suite à la validation je constate que toutes les enregistrements ont les mêmes valeurs.
Comment faire pour que seul l'enregistrement en cours de modification soit modifié ?
Voici le code de la page :
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="frmNAFClientNew3.aspx.cs" Inherits="frmNAFClientNew3" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Main" Runat="Server">
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="217px" AllowPaging="True" AutoGenerateRows="False" DataSourceID="SqlDataSource1" OnPageIndexChanging="DetailsView1_PageIndexChanging">
<Fields>
<asp:TemplateField HeaderText="UIDClient" SortExpression="UIDClient">
<EditItemTemplate>
<asp:DropDownList ID="lstClientEdit" runat="server" DataSourceID="SqlDataSourceClient1"
DataTextField="ClientFull" DataValueField="UIDClient" SelectedValue='<%# Bind("UIDClient") %>'
Width="220px">
</asp:DropDownList><asp:SqlDataSource ID="SqlDataSourceClient1" runat="server" ConnectionString="<%$ ConnectionStrings:MaestroConnectionString2 %>"
SelectCommand="SELECT [UIDClient], [ClientFull] FROM [MAESTRO_Client]"></asp:SqlDataSource>
</EditItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="lstClientInsert" runat="server" DataSourceID="SqlDataSourceClient2"
DataTextField="ClientFull" DataValueField="UIDClient" SelectedValue='<%# Bind("UIDClient") %>'
Width="220px">
</asp:DropDownList><asp:SqlDataSource ID="SqlDataSourceClient2" runat="server" ConnectionString="<%$ ConnectionStrings:MaestroConnectionString2 %>"
SelectCommand="SELECT [UIDClient], [ClientFull] FROM [MAESTRO_Client]"></asp:SqlDataSource>
</InsertItemTemplate>
<AlternatingItemTemplate>
</AlternatingItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ClientFull") %>' Width="220px"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="CodeAnalytique" SortExpression="CodeAnalytique">
<EditItemTemplate>
<asp:DropDownList ID="DropDownListCA1" runat="server" DataSourceID="SqlDataSourceCA1"
DataTextField="CodeAnalytique" DataValueField="CodeAnalytique" SelectedValue='<%# Bind("CodeAnalytique") %>'
Width="220px">
</asp:DropDownList><asp:SqlDataSource ID="SqlDataSourceCA1" runat="server" ConnectionString="<%$ ConnectionStrings:MaestroConnectionString2 %>"
SelectCommand="SELECT DISTINCT CodeAnalytique FROM MAESTRO_Ressource WHERE (CodeAnalytique <> N' AND CodeAnalytique IS NOT NULL')">
</asp:SqlDataSource>
</EditItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="DropDownListCA2" runat="server" DataSourceID="SqlDataSourceCA2"
DataTextField="CodeAnalytique" DataValueField="CodeAnalytique" SelectedValue='<%# Bind("CodeAnalytique") %>'
Width="220px">
</asp:DropDownList><asp:SqlDataSource ID="SqlDataSourceCA2" runat="server" ConnectionString="<%$ ConnectionStrings:MaestroConnectionString2 %>"
SelectCommand="SELECT DISTINCT CodeAnalytique FROM MAESTRO_Ressource WHERE (CodeAnalytique <> N' AND CodeAnalytique IS NOT NULL')">
</asp:SqlDataSource>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("CodeAnalytique") %>' Width="220px"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Annee" SortExpression="Annee">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Annee") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Annee") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Annee") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Taux" SortExpression="Taux">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Taux") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Taux") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("Taux") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MaestroConnectionString2 %>"
DeleteCommand="DELETE FROM MAESTRO_RepartitionRAF WHERE (UIDClient = @UIDClient) AND (CodeAnalytique = @CodeAnalytique) AND (Annee = @Annee)"
InsertCommand="INSERT INTO MAESTRO_RepartitionRAF(UIDClient, CodeAnalytique, Annee, Taux) VALUES (@UIDCllient, @CodeAnalytique, @Annee, @Taux)"
SelectCommand="SELECT MAESTRO_RepartitionRAF.UIDClient, MAESTRO_RepartitionRAF.CodeAnalytique, MAESTRO_RepartitionRAF.Annee, MAESTRO_RepartitionRAF.Taux, MAESTRO_Client.ClientFull FROM MAESTRO_RepartitionRAF INNER JOIN MAESTRO_Client ON MAESTRO_RepartitionRAF.UIDClient = MAESTRO_Client.UIDClient"
UpdateCommand="UPDATE MAESTRO_RepartitionRAF SET UIDClient = @UIDClient, CodeAnalytique = @CodeAnalytique, Annee = @Annee, Taux = @Taux">
<DeleteParameters>
<asp:Parameter Name="UIDClient" />
<asp:Parameter Name="CodeAnalytique" />
<asp:Parameter Name="Annee" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="UIDClient" />
<asp:Parameter Name="CodeAnalytique" />
<asp:Parameter Name="Annee" />
<asp:Parameter Name="Taux" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="UIDCllient" />
<asp:Parameter Name="CodeAnalytique" />
<asp:Parameter Name="Annee" />
<asp:Parameter Name="Taux" />
</InsertParameters>
</asp:SqlDataSource>
</asp:Content>
Merci pour vos réponses