IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Instancier des objets d'une FormView


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 44
    Par défaut Instancier des objets d'une FormView
    Bonsoir,
    J'aimerai avoir la porcédure pas à pas pour affecter une événement à un asp:Button contenu dans une FormView.

    Voici ce que j'ai fait et qui ne marche pas.
    Dans la feuille .aspx
    Ce bouton est bien dans une balise <asp:formview>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       <asp:Button ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" 
    Text="OK" BorderWidth="1px" Width="120px" OnClick="AjouterTransaction">
       </asp:Button>
    puis le code behind

    Déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Partial Class Secretariat_Transaction
        Inherits System.Web.UI.Page
        'Déclare le bouton inclu dans le formview en tant que objet autonome
        Protected WithEvents InsertButton As System.Web.UI.WebControls.Button
    Evénement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Protected Sub AjouterTransaction()
            Response.Redirect("Retour.aspx", True)
        End Sub
    Le message d'erreur est le suivant :'Protected Sub AjouterTransaction()' does not have the same signature as delegate 'Delegate Sub EventHandler(sender As Object, e As System.EventArgs)'

  2. #2
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Par défaut
    Bonsoir,

    Ton problème vient du fait que la fonction AjouterTransaction doit pouvoir prendre comme paramètre un object (en l'occurence celui qui va déclencher l'évènement) et un EventArgs (contenant les informations de ton évènement, en l'occurence pas grand chose)

    En gros, ta fonction doit avoir pour signature :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    protected void AjouterTransaction(object sender, EventArgs e);
    Tous les évènements en .NET sont calqués sur ce modèle !

    Le delegate est un pointeur vers une fonction qui a ce type de signature.

    Gouffe

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 44
    Par défaut
    Je suis en vb.net et non en C#. Donc, j'ai passé ton code en VB.net. Et ça marche.

    Merci beaucoup. Je cherche une solution à ce problème depuis plus de 2semaines.

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Par défaut
    Oui désolé, je suis allé trop vite

    Ravi d'avoir pu t'aider en tout cas !!

  5. #5
    Membre averti
    Inscrit en
    Août 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 44
    Par défaut
    Maintenant j'arrive à associer un événement à un objet contenu dans une formview. Mais il y a un autre problème qui se pose, je ne peux pas affecter une valeur de propriété à l'objet.

    J'essaie par exemple de spécifier une date par défaut au chargement de la page (Page_Load) pour un TextBox contenu dans un FormView.

    Voici mon code

    Côté .aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <td>Date de sortie :
         <asp:TextBox ID="DateSortieTextBox" runat="server" Text='<%# Bind("DateSortie") %>'>
         </asp:TextBox>
    Code behind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Protected WithEvents DateSortieTextBox As System.Web.UI.WebControls.TextBox
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    DateSortieTextBox.Text = Today
    End Sub
    Le message d'erreur cette fois-ci est :
    System.NullReferenceException: Object reference not set to an instance of an object.

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Par défaut
    Je ne sais pas si ta méthode peut marcher. Pour ma part je me contenterais simplement, dans le Page_Load, du bout de code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Not IsPostBack Then
        DateSortieTextBox.Text = Date.Today
    End If
    Et enlever la valeur de la propriété Text dans le code ASP.

    Normalement, ça devrait marcher de cette façon.

    La commande Bind fonctionne quand tu es lié à une base de données, ce qui n'est pas ici le cas.

    Gouffe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Stockage des objets dans une BD(InstantObject)
    Par Klemsy78 dans le forum Delphi
    Réponses: 3
    Dernier message: 29/03/2007, 20h56
  2. Dock des objets sur une fenêtre
    Par digital prophecy dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 10/08/2006, 17h14
  3. Réponses: 13
    Dernier message: 09/05/2006, 16h30
  4. Réponses: 4
    Dernier message: 08/03/2006, 19h07
  5. exporter des objets d'une base vers une autre
    Par RGShoop dans le forum Access
    Réponses: 3
    Dernier message: 07/09/2005, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo