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 :

Probléme de rechargement (textbox)


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Par défaut Probléme de rechargement (textbox)
    Bonjour les amis,

    Voila, je suis nouveau sur ASP.NET, et j'ai un petit probléme concernant ma page web. j'ai un text box + 2 boutons ( 1 pour incrémenter et un autre pour décrémenter)
    voici le code de l'incrémentation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
            Txt_Année = Txt_Année + 1
            txtAnnéeUnivD.Text = Txt_Année & " / " & Txt_Année + 1
        End Sub
    L'incrémentation ne se fait que deux fois et s'arréte... c'est le meme cas sur de nombreux pages ou il y'a un calcul à faire.

    Je sais, ça peut etre facile pour certain, mais je suis encore nouveau

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 388
    Par défaut
    Lu,
    un petit conseil: evite les accents dans les noms de tes variables.
    Sinon de quel type est ta variable Txt_Année?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Par défaut
    c'est mon Text Box .....

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 388
    Par défaut
    Ok.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Txt_Année = Txt_Année + 1
    Tu ajoutes 1 a un textbox et tu n'a pas d'erreurs a la compilation?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Par défaut
    ah désolé... je croyais que tu parlais "txtAnnéeUnivD" qui était mon textbox.

    au fait, Txt_Année est juste un entier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim Txt_Année As Integer
    dsl.j'avais pas bien lu

  6. #6
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Txt_Année As Integer


    Où as tu déclaré ceci ?

    Tant qu'à faire balances le code de ta page stp

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Par défaut
    voici le code behind de ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Partial Public Class WebOpen
        Inherits System.Web.UI.Page
        Dim Txt_Année As Integer
     
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Txt_Année = Date.Today.Year
            txtAnnéeUnivD.Text = Txt_Année & " / " & Txt_Année + 1
        End Sub
     
     
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
            Txt_Année = Txt_Année + 1
            txtAnnéeUnivD.Text = Txt_Année & " / " & Txt_Année + 1
        End Sub
     
        Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
            Txt_Année = Txt_Année - 1
            txtAnnéeUnivD.Text = Txt_Année - 1 & " / " & Txt_Année
        End Sub
     
     
    End Class

  8. #8
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Ceci est le fonctionnement normal de l'aspnet. Il te manque beaucoup de notions et je t'invite à aller faire les entrainements du coach ASP.NET.

    http://msdn.microsoft.com/fr-fr/asp....achaspnet.aspx

    A chaque chargement de ta page tu réinitialises Txt_Année avec la valeur de l'année systeme en cours.

    Pour contourner ce problème, tu peux utiliser dans le Page_Load de ta page la propriété isPostBack .

    De plus, Txt_Année n'est jamais conservé entre chaque chargement de page donc tu perdras souvent sa valeur. Une solution serait soit de la stocker dans le VIEWSTATE,la SESSION, ou un champ caché.

    Bonne formation

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Par défaut
    Citation Envoyé par predalpha Voir le message
    Pour contourner ce problème, tu peux utiliser dans le Page_Load de ta page la propriété isPostBack .
    Est ce que tu peux etre plus clair stp, avec un petit bout de code ?

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 388
    Par défaut
    En fait quand tu cliques sur ton bouton cela active le rechargement de ta page et donc tu n'as pas la valeur que tu souhaites.
    Le isPostBack permet de détecter cela: c'est un booléen, si vrai alors c'est un "vrai" chargement, si faux alors c'est que t'qs appuyé sur ton bouton.

    Donc dans ton Load tu peux faire quelquechose comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If Page.IsPostBack Then
    ' Code
    Else 'Code
    End If

  11. #11
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Oui c'est tout à fait ça sauf qu'il reste encore le problème de la sauvegarde de sa variable txt_Annee

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Par défaut
    si je suis ton raisonement je dois faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Txt_Année = Date.Today.Year
     
            If Not Page.IsPostBack Then
            txtAnnéeUnivD.Text = Txt_Année & " / " & Txt_Année + 1
            End If
     
        End Sub
    mais ça marche pas, à moins que j'ajoute une variable session pour conserver l'ancienne valeur

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 388
    Par défaut
    Ce serai plutot quelquechose comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     
            If Not Page.IsPostBack Then
                 Txt_Année = Date.Today.Year
                 txtAnnéeUnivD.Text = Txt_Année & " / " & Txt_Année + 1
            End If
     
        End Sub
    Mais comme le dit predalpha ca ne changera rien puisque ta variable Txt_Année sera egale a null a l'appui sur ton bouton.
    Pour resoudre ca t'as les variables de sessions mais je te le conseille pas c'est trop couteux pour faire ca.
    Au lieu de mettre Txt_Année en attribut en code behind fais un champ caché dans ta page.

  14. #14
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut
    Exemple de mémorisation dans le cache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    Partial Public Class WebOpen
        Inherits System.Web.UI.Page
        Dim Txt_Année As Integer
     
        Dim objID As String
     
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     
            'Création identifiant unique
            If Not Page.IsPostBack Then ViewState("ID") = Guid.NewGuid.ToString
     
            'objID sert de clé pour retrouver l'obj dans le cache
            objID = "MonInt|" & ViewState("ID").ToString  
     
             If Page.IsPostBack Then 
                 Txt_Année= CType(GetObjectFromCache(objID), integer)   
             else
                 Txt_Année = Date.Today.Year
     
            End If
     
            txtAnnéeUnivD.Text = Txt_Année & " / " & Txt_Année + 1    
     
        End Sub
     
    Public Function GetObjectFromCache(ByVal ObjName As String) As Object
            Dim _Cache As System.Web.Caching.Cache = Web.HttpContext.Current.Cache
            If _Cache(ObjName) Is Nothing Then
                Return Nothing
            Else
                Return _Cache(ObjName)
            End If
        End Function
     
    Public Sub SetObjectToCache(ByVal ObjName As String, ByVal obj As Object)
     
            If ObjName Is Nothing Or obj Is Nothing Then Exit Sub
     
            Dim _Cache As System.Web.Caching.Cache = Web.HttpContext.Current.Cache
     
             _Cache(ObjName) = obj
     
            End Sub
     
     Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
            Txt_Année = Txt_Année + 1
            txtAnnéeUnivD.Text = Txt_Année & " / " & Txt_Année + 1
        End Sub
     
        Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
            Txt_Année = Txt_Année - 1
            txtAnnéeUnivD.Text = Txt_Année - 1 & " / " & Txt_Année
        End Sub
     
     
    Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload
            SetObjectToCache(objID, obj)
        End Sub
    J'ai du simplifier mes 2 fonctions par rapport à ce que j'utilise dasn mes codes, mais cela devrait au moins te mettre sur la piste

    Je serais toi, j'éviterai aussi d'appeler TXT.. quelque chose qui est de type entier.

Discussions similaires

  1. problème avec une textBox?
    Par UnSofteuxAmateur dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/07/2007, 21h30
  2. Réponses: 1
    Dernier message: 25/06/2007, 16h33
  3. [Tableaux] problème de rechargement de checkbox
    Par mitch46000 dans le forum Langage
    Réponses: 4
    Dernier message: 24/05/2007, 15h07
  4. Problème de ComboBox, TextBox et BDD (VB6)?
    Par zizou2007 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/05/2007, 14h24
  5. [FLASH 8] Problème de rechargement de l'animation
    Par iceman2001 dans le forum Flash
    Réponses: 4
    Dernier message: 04/04/2006, 12h23

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