none
Problème DDL et vie de page RRS feed

  • Question

  •  

    Bonjour,

     

    Je tombe sur un problème que je crois comprendre mais ne sait pas comment résoudre. Je souhaiterai avoir vos avis éclairés sur ce point.

     

    1. J'ai une table qui contient 3 records (clé, désignation) : R1=Vis, R2=Clous, R3=Boulons

     

    2. Dans une page, je place un controle DropDownList associé à un SQLDataSource me permettant d'afficher les 3 désignations (TextField) dans l'ordre alphabétique et récupérer l'ID (ValueField)

     

    Jusque là pas de problèmes

     

    3. Maintenant, j'ajoute sur la page un bouton permettant de sélectionner automatiquement dans la DDL le choix "Vis", j'ai donc ajouté le code suivant :

     

    Code Snippet

    protected void button_click(object sender, EventArgs e)

    {

       DDL.Items.FindByText("Vis").Selected = true;

    }

     

     

     

    4. Quand j'exécute ce code (la compilation est ok), je prend un message d'erreur au moment du clic sur le bouton indiquant : La référence d'objet n'est pas définie à une instance d'un objet.

     

    J'en conclus que ma page a été entièrement rendue et qu'elle a donc disparue de la mémoire du serveur. Faisant un nouvel appel, l'objet DDL n'existe plus.

     

    Est-ce la bonne interprétation et comment résoudre de problème : Recharger la page ? Ne pas la supprimer de la mémoire ? ou autre chose ...

     

    Cordialememt,



     


    N@p0

    • Déplacé Tagore Bandlamudi mercredi 7 juillet 2010 07:06 Forums Consolidation (Origine :Forum du coach ASP.NET)
    mercredi 26 mars 2008 10:14

Toutes les réponses

  • Bonjour,

     

    Lorsque l'utilisateur clique sur le bouton, la page est "repostée" intégralement sur le serveur qui charge votre page en mémoire.

    En principe avec le ViewState, l'état des contrôles de la page est préservé sur chaque aller retour. Vous trouverez des explication sur cette technologie dans le dernier atelier du coach ASP.NET (http://msdn2.microsoft.com/fr-fr/asp.net/bb412348.aspx) Donc la DDL ne doit pas être vide, sauf si vous avez configuré l'attribut EnableViewState à false sur la directive de page (@Page) ou sur la déclaration de la DDL directement.

     

    Un bon réflexe est d'utiliser le debogueur pour consulter le contenu de vos variables lors du traitement de la page. Positionnez un point d'arrêt dans la marge à gauche de votre ligne de code, lancez l'application web en mode debog (F5) et consulter le contenu de la DDL par ce biais.

     

     

    mercredi 16 avril 2008 17:34