Une histoire de ViewState

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 30 mai 2008 à 14:12
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 2 juin 2008 à 11:50
Bonjour à tous,

Voici un problème qui m'occupe depuis quelques heures :

Pour un site, j'ai bindé un GridView avec un ObjectDataSource personnalisé comme ceci :

public class ServiceObjectDataSource : ObjectDataSource {

   public DateTime Date {
      get { return (DateTime)(ViewState["myDate"] ?? DateTime.Now); }
      set { ViewState["myDate"] = value; }
   }

   public MonDataSet GetAll() {
      [...]
         GetValues( this.Date );
      [...]
   }
}

Lors du clique sur un bouton, je veux changer la date pour modifier mon jeu de données : 

   maDataSource.Date = maNouvelleDate;
   monDataGrid.DataBind();

Une chose assez curieuse se produit : malgrès que je renseigne ma date, lorsque la méthode GetAll est appelée le ViewState est vide !

Je suis à cours d'idée...
Merci

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
A voir également:

4 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
31 mai 2008 à 00:15
Bonjour,
Page.IsPostBack est true ? Page.Viewstate.Count 0 ? Request.Form["__VIEWSTATE"]?

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
31 mai 2008 à 07:44
Je vérifie lundi... et te tiens au courant.

Merci de ta réponse... pour le moment, je palie au problème en passant par une variable de Session... c'est moche

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
2 juin 2008 à 09:47
Bon... en fait :

Page.IsPostBack = true --> normal
Page.Viewstate.Count = 0

Request.Form["__VIEWSTATE"]  = plein...

Merci Cyril.

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
2 juin 2008 à 11:50
interessant :-)

t'es bien dans le page_load t'as pas un httpModule à la con ? un pageStatePersister ?

essaye de surcharger le LoadViewstate après le base.LoadViewstate ton viewstate est toujours null ? le Object passé en paramètre contient bien un arbre ?

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
Rejoignez-nous