2011-08-09 2 views
0

Je souhaite modifier une source d'images basée sur un lien dans la base de données. Je reçois un obect n'est pas mis à un message de référence nulle sur certaines de mes pages. Voici le code que j'essaie d'utiliser pour lancer l'image. Il fonctionne avec le code commenté pour toutes les pages mais environ trois ... la seule raison pour laquelle je pense qu'il casse est parce que ces pages utilisent une page maître héritée sur laquelle le logo est situé. image.Src dans la dernière partie de l'instruction if, il n'a pas .Src disponible. Est-il possible de changer dynamiquement une source d'image? Je vous remercie!Diffuser dynamiquement une image et en modifier la source

   if (row.ImageString != "") 
       { 
        //imgLogo.Src = "~" + row.ImageString; 
        Image image = new Image(); 
        image.FindControl("imgLogo"); 
        image.Src = "~" + row.ImageString; 
       } 

Répondre

0

Je pense que vous avez besoin quelque chose comme ceci:

Image image = row.FindControl("imgLogo"); 
image.ImageUrl = "~" + row.ImageString; 

Votre code tente de trouver une image dans une image que vous venez initialisés. Vous devez trouver l'image dans le conteneur ligne/article/parent.

-1

Vous obtenez une référence nulle à cause de la page maître. Si vous utilisez .Net 4.0, vous devez définir l'ID client sur statique sur le contrôle d'image.
Si vous utilisez .Net avant la version 4.0, vous devez regarder le code source affiché lorsque vous créez/exécutez la page et recherchez le contrôle d'image et examinez l'ID du contrôle. Parfois, il apparaîtra comme Content.ImageName ou Content_ImageName .... Copiez cela dans votre méthode image.Findcontrol.
Ça va vous corriger.

+0

Votre suggestion n'aidera pas à résoudre son problème. Définir le ClientID sur statique ne concerne que le côté client, et tout ce qu'il fait est côté serveur. –

+0

Cela n'a rien à voir avec ça. Son erreur de référence Null est parce qu'il ne peut pas trouver le contrôle de l'image (Il vous dit son problème dans la description). S'il définit le nom du clientID, il permettra au serveur de trouver le contrôle quand il essaie d'insérer l'URL, sinon il doit donner le nom de contrôle complet. – cgcarter1

+0

Oui, il ne peut pas trouver l'image car il essaie de trouver le contrôle dans l'image qu'il a initialisée sur la ligne avant. Veuillez revoir le code plus attentivement avant de poster une réponse. –

Questions connexes