Detailsview dans VWD 2005 express

plcs Messages postés 4 Date d'inscription vendredi 25 août 2006 Statut Membre Dernière intervention 30 août 2006 - 27 août 2006 à 23:20
plcs Messages postés 4 Date d'inscription vendredi 25 août 2006 Statut Membre Dernière intervention 30 août 2006 - 30 août 2006 à 12:46
Bonjour à tous,

Je sèche actuellement sur une problématique que j'imagine liée à mon bisutage obligatoire de l'utilisation de Visual Web Dev 2005.

J'ai mis sur une page un detailswiew en default mode "Insert". Celui-ci est composé d'un certain nombre de champs demandant la saisie d'informations comme nom, prénom, lieu de naissance, etc.

J'ai remplacé le bouton de validation commandfield par un template field sous la forme suivante :

<asp:TemplateField>
      <InsertItemTemplate>
            <asp:Button
ID="InsertButton"
runat="server"
CausesValidation="True"
CommandName="Insert"
Text="VALIDER"
CssClass=bleunormal/>
      </InsertItemTemplate>
</asp:TemplateField>

Tout fonctionne bien. Les informations des champs rentrent bien dans la base Access (désolé).

Or, je cherche depuis de longues, très très longues journées, comment faire en sorte que le bouton de validation exécute 2 tâches :
1 - qu'il enregistre bien les données dans la base (ça c'est OK, ça marche)
2 - qu'il renvoie vers une nouvelle page remerciant l'internaute de s'être inscrit.

Voici ce que j'ai tenté en vain de faire :
- ajouter un postback dans la balise de l'asp:Button : ça ouvre bien à une nouvelle page, mais ça n'enregistre pas les données dans la base
- mettre le detailsview et l'accesssource entre 2 balises "form" avec une contrôle "action". Là en revanche, ça enregistre bien les données, mais ça ne renvoie vers aucune page.

Quelqu'un aurait-il une réponse ???

PLCS
A voir également:

6 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
28 août 2006 à 09:24
Bonjour,

il suffit de t'abonner à l'evenement ItemInserted de ton FormView :-)


<hr />
Cyril - MVS - MCP
0
plcs Messages postés 4 Date d'inscription vendredi 25 août 2006 Statut Membre Dernière intervention 30 août 2006
28 août 2006 à 12:59
Hello,

Merci de ta réponse...

Donc je mets entre les premières balises script, un code type :

Public Event ItemInserted () As DetailsviewEventHandler

ainsi qu'un "OnItemInserted" après la balise <gras>
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
28 août 2006 à 13:41
Bonjour,


J'ai rien pigé :p


Cyril - MVS - MCP
0
plcs Messages postés 4 Date d'inscription vendredi 25 août 2006 Statut Membre Dernière intervention 30 août 2006
28 août 2006 à 15:02
...il refuse l'expression "Void".

Du coups avec Sub au lieu de Void dans le script :











Protected



Sub
DetailsView1_ItemInserted(

ByVal
sender

As



Object
,

ByVal
e

As
System.EventArgs)Response.Redirect(


"index.aspx"
)


End



Sub





et dans le detailsview



<





asp
:
DetailsView
ID
="DetailsView1"
OnItemInserted
="DetailsView1"



Il renvoie un message d'erreur disant :



Erreur 1 La méthode 'Protected Dim WithEvents DetailsView1 As System.Web.UI.WebControls.DetailsView' n'a pas la même signature que le délégué 'Delegate Sub DetailsViewInsertedEventHandler(sender As Object, e As System.Web.UI.WebControls.DetailsViewInsertedEventArgs)'. 

PLCS
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
28 août 2006 à 15:16
si t'es en VB

protected sub blabla(...) handles DetailsView1.ItemInserted

rien besoin de modifier au niveau de la page html

<hr />Cyril - MVS - MCP
0
plcs Messages postés 4 Date d'inscription vendredi 25 août 2006 Statut Membre Dernière intervention 30 août 2006
30 août 2006 à 12:46
Merci pour ta réponse.

En fait, j'ai essayé à plusieurs reprises mais quelque chose bloque :

Voici le script que j'ai mis

<

asp:Content
ID="Content1"
ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server"><

script
language="javascript"
type="text/javascript">

<script
runat=server>

Protected
Sub DetailsView1_ItemInserted(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles DetailsView1.ItemInserted Response.Redirect(
"index.aspx")

End
Sub</

script>

puis dans le controle detailsview :

<

asp:DetailsView
DefaultMode=Insert
ID="DetailsView1"
OnItemInserted
="DetailsView1"
runat="server"
AutoGenerateRows="False"
DataKeyNames="URL"

DataSourceID="AccessDataSource2"
Height="50px"
HorizontalAlign="Center"
Width="95%"
CellPadding="5">et VWD affiche alors 2 erreurs portant sur la ligne du script :
La première :
Erreur 1 La méthode 'Protected Sub DetailsView1_ItemInserted(sender As Object, e As System.EventArgs)' ne peut pas gérer l'événement 'Public Event ItemInserted(sender As Object, e As System.Web.UI.WebControls.DetailsViewInsertedEventArgs)', car ils n'ont pas la même signature. C:\MY FILES\ESSAI\echange-de-liens-fonds-de-commerce-sub.aspx 28 119 C:\MY FILES\ESSAI\

La deuxième :
Erreur 2 Fin d'instruction attendue. C:\MY FILES\ESSAI\echange-de-liens-fonds-de-commerce-sub.aspx 28 132 C:\MY FILES\ESSAI\

Là, je sèche grave

PLCS
0
Rejoignez-nous