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 :

[VB.NET] View state vide après post back


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut [VB.NET] View state vide après post back
    Bonjour a tous,

    alors voila j'ai un asyncfile uplaod sur ma page qui upload correctement mes fichiers afin d'afficher le nom des fichiers sur la page j'utilise cette petite fonction javascript pour l'affichage coté client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <asp:AsyncFileUpload ID="afuPieceJointe" runat="server" ClientIDMode="AutoID" PersistFile="True" OnClientUploadComplete="test"/>
                            <script type="text/javascript">
                                function test(sender,args) {
                                    var afu = document.getElementById('ctl00_cphPage_afuPieceJointe_ctl00');
                                    var lbl = document.getElementById('cphPage_lblJoinPiece');
                                    lbl.innerHTML += '<b>- ' + args.get_fileName() + '</b><br/>';
                                }
                            </script>
    du coté serveur la méthode uploadcomplete contient le code suivant :

    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
    Protected Sub afuPieceJointe_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles afuPieceJointe.UploadedComplete
            If VerifDernierePieceJoint() Then
                If afuPieceJointe.ForeColor <> Drawing.Color.Red Then
                    If afuPieceJointe.HasFile Then
                        Dim chaine As String() = lblNumDaAch.Text.Split("(")
                        Dim extension As String = getExtension(afuPieceJointe.FileName)
                        Dim fileName As String() = afuPieceJointe.FileName.Split(extension)
                        afuPieceJointe.SaveAs(ConfigurationManager.AppSettings("pathTemporaryJoinPiece") & "temp_" & fileName(0) & "_" & chaine(0) & "." & fileName(1))
                        lblJoinPiece.Text += "<b>- " & afuPieceJointe.FileName & "</b><br/>"
                        ViewState("NomFic") = lblJoinPiece.Text
                        upjoinPiece.Update()
                    End If
                End If
            End If
        End Sub
    c'est donc le ViewState("NomFic") qui me pose un problème, lorsque j'execute en mode pas à pas le viewstate est correctement rempli et la fonction javascript fonctionne car le texte s'affiche correctement sur la page.

    Donc en gros tout se passe bien sauf que :

    lorsque je reprend la main sur l'application donc au retour du post back mon view state est a "Nothing" et la proprièté texte de mon label est a vide.

    je ne comprend absolument pas pourquoi
    sachant que dans le page_load a chaque post back je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lblJoinPiece.Text = ViewState("NomFic")
    afin de conserver mes données comme devrait le faire le viewstate.
    Bref je suis perdu la je ne vois pas quoi faire, en espérant avoir été clair merci d'avance.

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    pourquoi ne pas utiliser la session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Session("NomFic") = lblJoinPiece.Text;
     
    lblJoinPiece.Text = CStr(Session("NomFic"));
    ton viewstate est bien utilisé qu'à ces deux endroits ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    je n'ai besoin de ces données que sur cette page je ne veux pas que ces données puissent être utilisables tout au long de l'ouverture de la session utilisateur car cette application est censée pouvoir rester en tache de fond et de plus je ne suis pas sur que tout les utilisateurs se deloggent chaque jour d'où l'utilisation du view sate.

    Il n'y a qu'a cet endroit ou j'affecte le view state

    merci pour ta reponse rapide

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 312
    Par défaut
    1)
    Estce que ton viewstate n'est pas désactivé dans ta page ou ton web.config ?

    2)
    Dans quelle méthode (apres le postBack) teste tu le viewstate ?

    3)
    Essaie avec une autre variable, juste pour tester si le problème vient de ton code ou de la conf de ton site

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    1. le view state n'est pas désactivé

    2. je fait appel au contenu du view state dans le page_load si ce n'est pas un post back pour recupèrer mes valeurs, ce view state ne me sert qu'a cela je ne l'appel donc pas ailleur sauf dans la méthode onUploadComplete de mon asyncfileupload afin de "sauvegarder" le nom des fichiers uploadés.

    3. En testant avec un autre variable le problème est identique

    merci pour les pistes

  6. #6
    Membre chevronné
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Par défaut
    J'ai eu ce problème également.
    Le champ texte du control est en lecture seule pour des raisons de sécurité, et donc le viewstate ne peut pas remplir le champ.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    Bonjour merci pour cette explication, c'est plus clair dans ma tête.
    Donc la solution de contournement reste la session ? ou alors il existe d'autres solutions?

  8. #8
    Membre chevronné
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Par défaut
    Si ta question est de savoir comment pré-remplir le champ uplaod avec le chemin vers le fichier : ça n'est pas possible, du moins pas à ma connaissance.

Discussions similaires

  1. [AJAX] ASP.Net, Ajax Control Toolkit et Post Back
    Par Nanais19 dans le forum AJAX
    Réponses: 1
    Dernier message: 24/11/2012, 14h31
  2. Valeur de Querystring Perdu apres Post-back
    Par mazdahmen dans le forum ASP.NET
    Réponses: 4
    Dernier message: 05/09/2010, 03h32
  3. [3.5] Afficher un alert apres un post back
    Par CUCARACHA dans le forum ASP.NET
    Réponses: 6
    Dernier message: 04/08/2008, 13h57
  4. Réponses: 11
    Dernier message: 03/10/2007, 10h45
  5. Réponses: 3
    Dernier message: 25/10/2006, 09h39

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