UpdatePanel peut-il générer cette erreur ? [Résolu]

Signaler
Messages postés
126
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
7 décembre 2009
-
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
-
Bonjour a tous j'ai une page aspx dans laquelle j'ai un updatePanel qui comprend toute la page et 3 updatePanel a l'interieur de celui ci.

Quand je charge la premiere fois ma page, mes infos sont bien affichées, mais je clique sur un bouton (qui doit afficher d'autres infos), j'ai une erreur qui s'affiche en Msgbox avec ce texte : "La référence d'objet n'est pas définie à un instance d'un objet.".

J'arrive pas a cerner l'erreur mais je suppose qu'elle provient d'un updatepanel.

Est ce possible et si oui quelle est cette erreur ?

Merci d'avance
A voir également:

7 réponses

Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Ah, on se rapproche... Donc si j'ai bien compris, ta Property "Reference" est remplie lors du DataBinding du Repeater.
Vérifie qu'elle est bien remplie AVANT le Page_Load (sinon, logiquement, le Page_Load de l'UC trouvera un vLigne vide...)


Et que fais-tu pour charger d'autres données ? Tu re-rempli ton Repeater ? Si oui, tu dois sans doute le faire dans le Click d'un bouton ou un truc du genre, et qui se produit donc après le Page_Load, d'où la NullReferenceException...
Dans ce cas, remplie tout ce qui dépend de vLigne plus tard dans le chargement de l'UC, par exemple dans le Page_PreRender...

A++
 


<hr width="100%" size="2" />
Nurgle (Antoine) - MSP
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Salut,

Le message d'erreur ne te dis pas la portion de code exacte qui provoque l'erreur ?

Mais comme ça, je dirais qu'imbriquer des UpdatePanel, ça doit pas être recommandé...  (en plus d'être pas très utile )

A++

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
Messages postés
126
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
7 décembre 2009

Bonjour,

J'ai cerné le problème, il proveint d'un usercontrol.
Je m'explique :

J'appel mon usercontrol dans un repeater :
<

AffArticle:ArticleID="UserArt"runat="server"Reference='<%#Container.DataItem%>'AffichageMode="Configurateur"/>

Je lui passe la ligne du container.

Dans mon usercontrol je récupere cette ligne avec mon set property dans une variable globale DataRowView.
J'utilise la ligne ensuite ainsi :vCode = vLigne(

"REFERENCE")vPoid = vLigne(

"POID")

...

Lors du 1er chargement de ma page les articles sont bien affichés mais si je charge d'autre données l'erreur aparait sur la 1er vLigne("REFERENCE").

Je ne trouve pas le problème ...
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Salut,

Tu obtiens une NullReferenceException, qui indique que ton vLigne est égal à Nothing...
vLigne est bien recréé à chaque PostBack ? (Il ne doit pas être dans un If Not Page.IsPostBack par exemple)
A quel moment dans le cycle de chargement de la page est-il créé ? Vérifie que cette méthode est bien appellée à chaque PostBack...

Si non tu peux tester si il existe avant de l'utiliser :
If vLigne Is Nothing Then
vLigne = ' ici tu rerempli ta variable avec ce qu'il faut
End If
vCode = vLigne("...")
' ...
Mais ça contourne juste le problème, le mieux serai de comprendre pourquoi il recharge pas vLigne...

A++

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
Messages postés
126
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
7 décembre 2009

Non pas de If not Page.IsPostBack ...

Voici mon code de mon usercontrol :

Partial Class user_controls_article
    Inherits System.Web.UI.UserControl
   
    Public vLigne As DataRowView




    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load   





     'ETAPE 2 : REMPLISSAGE DES VARIABLES
        vArCode = vLigne("AR_CODE")
        ...
    End Sub





    Public Property Reference() As DataRowView
        Get
            Return vLigne
        End Get
        Set(ByVal value As DataRowView)
            vLigne = value
        End Set
    End Property





End Class
Messages postés
126
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
7 décembre 2009

Très fort Nurgle ... mille mercis !!!

Il fallait mettre le code du UserControl Load dans le PreRender, merci encore.

Quand au update panel c'est juste il ne faut pas les imbriqués, mais je debute avec ce genre de controle alors je connais pas du tout comment cela fonction optimalement.
Tu n'aurai pas un bon tuto sur les UpdtePanel ?

Merci encore tu me sort une sacrée épine du pied
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
De rien

Pour le tutorial sur les UpdatePanel, il y a bien ce post de cyril mais c'est un peu court, mais sinon je connait pas encore de bonne ressource en français là dessus...

Bonne journée,
A++

<hr width="100%" size="2" />Nurgle (Antoine) - MSP