Salut à tous,
Après avoir cherché un peu partout sur le net, je me lance.
On a donc
- une page "page1.aspx" supportant le formulaire
- une page "page2.aspx" destinée au remerciement
- une base de données ACCESS "groarrrr.mdb" contenant une table : [TabNOMEMAILVISITEUR]
L'objectif est de réaliser sur la page1.aspx un formulaire permettant :
1° aux visiteurs d'insérer leur nom et email
2° de les remercier après la saisie en les envoyant sur la page2.aspx qui est une page de remerciement.
Voici ce que j'ai utilisé :
DETAILSVIEW avec fonction DEFAULT MODE INSERT composé de 2 asp:textbox (1 pour le Nom + 1 pour l'Email) et un BOUTON de validation assorti d'un PostbackURL.
(+) Le Detailsview apparaît bien en mode edit
(+) On peut saisir des données
(+) Lorsque l'on clique sur le BOUTON, cela emmène bien à la page2.aspx
(-) Mais les données NOM et EMAIL ne rentrent pas dans la table ACCESS !!!!! Et ça fait 3 jours !!!!!
Si quelqu'un avait une idée, ce serait vraiment charitable :-)
(PS - j'ai effacé toutes mes tentatives foireuses de code behind pour n'influencer personne)
Et voici du code pour le dessert :
--------------------------------------------------------------------------------------------------------------------------------------------------
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub DetailsView1_PageIndexChanging(sender As Object, e As System.Web.UI.WebControls.DetailsViewPageEventArgs)
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<!-- DETAILSVIEW EN DEFAULTMODE EDIT / DEBUT -->
<asp:DetailsView ID="DetailsView1" DataSourceID="AccessDataSource1"
runat="server" Height="50px" Width="125px" AutoGenerateRows="false"
DefaultMode="Insert" onpageindexchanging="DetailsView1_PageIndexChanging">
<Fields>
<asp:TemplateField>
<InsertItemTemplate>
<asp:TextBox ID="Nom" runat="server" skinID="Nom" Text=""></asp:TextBox>
<asp:TextBox ID="Email" runat="server" SkinID="Email" Text=""></asp:TextBox>
<asp:Button ID="BoutonValidation" runat="server" PostBackUrl="~/work/Page2.aspx" UseSubmitBehavior="true" Text="OK" />
</InsertItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
<!-- DETAILSVIEW EN DEFAULTMODE EDIT / DEBUT -->
<!-- LA CONNEXION AVEC LA BASE DE DONNEES ACCESS GROARRRR.MDB / DEBUT -->
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
ConflictDetection="CompareAllValues" DataFile="~/groarrrr.accdb"
DeleteCommand="DELETE FROM [TabNOMEMAILVISITEUR] WHERE (([Nom] = ?) OR ([Nom] IS NULL AND ? IS NULL)) AND (([Email] = ?) OR ([Email] IS NULL AND ? IS NULL))"
InsertCommand="INSERT INTO [TabNOMEMAILVISITEUR] ([Nom], [Email]) VALUES (?, ?)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [TabNOMEMAILVISITEUR]"
UpdateCommand="UPDATE [TabNOMEMAILVISITEUR] SET [Email] = ? WHERE (([Nom] = ?) OR ([Nom] IS NULL AND ? IS NULL)) AND (([Email] = ?) OR ([Email] IS NULL AND ? IS NULL))">
<DeleteParameters>
<asp:Parameter Name="original_Nom" Type="String" />
<asp:Parameter Name="original_Email" Type="String" />
<asp:Parameter Name="original_Email" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Nom" Type="String" />
<asp:Parameter Name="Email" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="original_Nom" Type="String" />
<asp:Parameter Name="original_Email" Type="String" />
<asp:Parameter Name="original_Email" Type="String" />
</UpdateParameters>
</asp:AccessDataSource>
<!-- LA CONNEXION AVEC LA BASE DE DONNEES ACCESS GROARRRR.MDB / FIN -->
</div>
</form>
</body>
</html>