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][2.0] Comment mettre un DataSet dans un ViewState ?


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Par défaut [VB.Net][2.0] Comment mettre un DataSet dans un ViewState ?
    Bonjour,

    J'aimerais mettre dans le viewstate un dataset avec les données qu'il contient. Est-ce possible, car il semble garder uniquement la structure (les datatables). Voici donc ce que j'ai comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
     
            If Not IsPostBack Then
                dsElemCouplages = New System.Data.DataSet
                ChargementListe()
                ViewState.Add("dsElemCouplages", dsElemCouplages)
            End If
             dsElemCouplages = CType(ViewState("dsElemCouplages"), System.Data.DataSet)
            gvElementsCandidats.DataBind()
            gvElementsSelect.DataBind()
        End Sub
    La procédure ChargementListe() effectue un remplissage du dataset avec les tables que j'ai besoin ainsi que les lignes que les tables doivent contenir. Ensuite, j'effectue un databind de mes deux GridView.

    Mes gridviews contiennent bel et bien les lignes que je veux, mais du moment que je fais une opération (en cliquant sur un bouton), elles deviennent vides et il n'y a plus de ligne dans mon dataset, mais il y a quand même les datatables. Aurais-je mal utilisé le viewstate ?

    Merci,

    Évans

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Par défaut
    as-tu essayer avec une variable Session?

    Le ViewState

    Description :

    Le ViewState fait partie de ces nouveaux concepts introduit par Microsoft dans sa nouvelle mouture d’ASP.NET. Le ViewState permet de stocker l’état de l’ensemble des contrôles contenus dans une page HTML à l’aide d’un champ caché. Ainsi, lorsqu’un utilisateur saisit une information dans un Textfield, sélectionne une case à cocher ou met à jour un formulaire quelconque, l’ensemble de ces opérations sont envoyées au serveur puis stockées sur le poste client dans un champ ViewState
    d'après l'énoncé suivant, je ne crois pas que le viewState soit la manière la plus approprié pour sauvegarder ton dataset...

    Un conseil: pour une quantité énorme de données (10 000 et +), je te conseil de ne pas sauvegarder ton dataset dans une variable Session. En effet, cela alourdit énorméement tes applications web!

    Depuis que je le sais, j'emmagasine que le dataview qui résulte d'un dataset. Tu peux même pas savoir comment le temps de chargement est plus court!


  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Par défaut
    Bonjour,

    Mais à partir d'un dataview, est-ce que tu peux recharger les informations et regénérer un dataset à partir de ça ?

    De plus, le dataview est-il plus emmagasinable dans le viewstate, ou une variable session serait encore le mieux ?

    Car il y a une limite de temps sur une variable session non ?...

    Merci,

    Évans

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Par défaut
    Mais à partir d'un dataview, est-ce que tu peux recharger les informations et regénérer un dataset à partir de ça ?
    Si tu t'inquiete pour le Binding à ton Datagrid, il n'y a pas de probleme avec le fait de faire un databind avec un dataview. Un dataview est essentiellement un datatable avec des fonctionnalités vraiment intéressantes. Un dataset est composé de datatable. Tu peux donc insérer un dataview dans un dataset sans probleme.

    De plus, le dataview est-il plus emmagasinable dans le viewstate, ou une variable session serait encore le mieux ?
    Je ne serais pas prêt à dire que c'est plus emmagasinable...mais tu peux insérer ce que tu veux dans une variable Session. Le sujet est plutot mitigé car certains préfèrent les Sessions et d'autres les ViewState.

    Car il y a une limite de temps sur une variable session non ?...
    C'est toi qui défini la limite de temps de la session dans le fichier web.config. Personnellement, mes applications web à l'interne ont toujours une limite de 2 heures!

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Par défaut
    Merci beaucoup,

    Je vais donc tenter le coup avec une variable session, ainsi qu'avec un dataview.

    Merci,

    Évans

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Par défaut
    Ne jamais mettre en viewstate un dataset
    C'est trop énorme et ca alourde la page de facon atroce

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/03/2007, 16h30
  2. [VB.Net] Comment récuperer un DataSet dans un DataView ?
    Par Ruddy dans le forum Accès aux données
    Réponses: 1
    Dernier message: 08/09/2006, 11h32
  3. [VB.Net] Comment mettre un texte dans un NotifyIcon ?
    Par Aspic dans le forum Windows Forms
    Réponses: 19
    Dernier message: 25/07/2006, 21h29
  4. Réponses: 7
    Dernier message: 13/06/2006, 15h39
  5. Réponses: 8
    Dernier message: 16/03/2006, 09h32

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