Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dev WebPart et affichage d'objet externe

5 réponses
Avatar
Reg
Bonjour,

J'ai un projet de WebPart dans lequel j'ai un dossier contenant des images
et fichiers texte. Je voudrai afficher les images mais je n'y parviens pas :
Image myImage = new Image();
myImage.ImageUrl = "~/images/test.gif";

Ce type de code fonctionne dans une page ASP.Net classique mais pas dans un
projet WebPart SPS (VS 2003, .NET 1.1)

J'utilise un projet de déploiement CAB mais comment est géré mon dossier
d'images ?
stsadm -o addwppack -filename myproject.cab

Merci pour vos lumières...

5 réponses

Avatar
Sébastien PICAMELOT
Bonjour,

les images peuvent être affichées de différentes façons :

- soit un contrôle Image est créé puis ajouté à la collection des contrôles
de la WebPart (dans ce cas il faut supprimer la méthode RenderWebpart).
Ex:
protected override void AddChildControls()
{
// this.Controls.Add(...)
}

- soit l'équivalent HTML de l'image est généré puis écrit dans le flux de
sorti
Ex :
protected override RenderWebPart(HtmlTextWriter output)
{
// output.Write("<img src="..." />");
}

- soit la WebPart délègue l'affichage à un XslTransform


Les images peuvent faire parti du .cab (ne pas oublier de les mettre
"Content" en action de génération pour le fichier image). Le fichier
manifest.xml doit les référencer de cette façon :

<Assemblies>
<Assembly>
<ClassResources>
<ClassResource FileName ="mon_image.png" />
</ClassResources>

...
</Assembly>
</Assemblies>

Si un fichier .ddf est utilisé, le fichier image doit aussi être présent
dans le fichier ddf.

J'espère que ça vous sera utile.

--
Sébastien PICAMELOT
--------------------------------------
http://blogs.developpeur.org/gribouillon



"Reg" a écrit :

Bonjour,

J'ai un projet de WebPart dans lequel j'ai un dossier contenant des images
et fichiers texte. Je voudrai afficher les images mais je n'y parviens pas :
Image myImage = new Image();
myImage.ImageUrl = "~/images/test.gif";

Ce type de code fonctionne dans une page ASP.Net classique mais pas dans un
projet WebPart SPS (VS 2003, .NET 1.1)

J'utilise un projet de déploiement CAB mais comment est géré mon dossier
d'images ?
stsadm -o addwppack -filename myproject.cab

Merci pour vos lumières...


Avatar
Reg
Bonjour Sébastien,

Tout d'abord merci pour ces informations.
Je suis plutôt dans le cas de figure n° 2. J'ai renseigné dans manifest.xml
la liste de mes fichiers qui sont bien présents dans le CAB.

Cependant ma méthode RenderWebPart est utilisée. Je précise aussi que mes
images s'affichent (euh devraient s'afficher) dans un datagrid que je traite
en passant par RenderWebPart... J'espère ne pas être trop confu dans mes
explications.
Je suis donc un peu bloqué :( Je ne connais pas XslTransform, je vais
regardé dans cette direction à moins que mes précisions ne vous apportent
d'autres idées.

Merci

Reg


"Sébastien PICAMELOT" a écrit :

Bonjour,

les images peuvent être affichées de différentes façons :

- soit un contrôle Image est créé puis ajouté à la collection des contrôles
de la WebPart (dans ce cas il faut supprimer la méthode RenderWebpart).
Ex:
protected override void AddChildControls()
{
// this.Controls.Add(...)
}

- soit l'équivalent HTML de l'image est généré puis écrit dans le flux de
sorti
Ex :
protected override RenderWebPart(HtmlTextWriter output)
{
// output.Write("<img src="..." />");
}

- soit la WebPart délègue l'affichage à un XslTransform


Les images peuvent faire parti du .cab (ne pas oublier de les mettre
"Content" en action de génération pour le fichier image). Le fichier
manifest.xml doit les référencer de cette façon :

<Assemblies>
<Assembly>
<ClassResources>
<ClassResource FileName ="mon_image.png" />
</ClassResources>

...
</Assembly>
</Assemblies>

Si un fichier .ddf est utilisé, le fichier image doit aussi être présent
dans le fichier ddf.

J'espère que ça vous sera utile.

--
Sébastien PICAMELOT
--------------------------------------
http://blogs.developpeur.org/gribouillon



"Reg" a écrit :

> Bonjour,
>
> J'ai un projet de WebPart dans lequel j'ai un dossier contenant des images
> et fichiers texte. Je voudrai afficher les images mais je n'y parviens pas :
> Image myImage = new Image();
> myImage.ImageUrl = "~/images/test.gif";
>
> Ce type de code fonctionne dans une page ASP.Net classique mais pas dans un
> projet WebPart SPS (VS 2003, .NET 1.1)
>
> J'utilise un projet de déploiement CAB mais comment est géré mon dossier
> d'images ?
> stsadm -o addwppack -filename myproject.cab
>
> Merci pour vos lumières...


Avatar
Sébastien PICAMELOT
J'ai commis une erreur avec la méthode AddChildControls(). Utilisez en fait
la méthode CreateChildControls pour ajouter la datagrid, et utilisez la
méthode EnsureChildControls dans la méthode RenderWebPart.

Vous trouverez un exemple ici :
http://www.devx.com/dotnet/Article/17518/0/page/5

La méthode XslTransform est un autre moyen de générer du HTML, plus souple
et plus générique à mon gout... mais pour un DataGrid ce sera certainement
plus simple d'utiliser la méthode détaillée ci dessus.

Bon développements,

--
Sébastien PICAMELOT
--------------------------------------
http://blogs.developpeur.org/gribouillon



"Reg" a écrit :

Bonjour Sébastien,

Tout d'abord merci pour ces informations.
Je suis plutôt dans le cas de figure n° 2. J'ai renseigné dans manifest.xml
la liste de mes fichiers qui sont bien présents dans le CAB.

Cependant ma méthode RenderWebPart est utilisée. Je précise aussi que mes
images s'affichent (euh devraient s'afficher) dans un datagrid que je traite
en passant par RenderWebPart... J'espère ne pas être trop confu dans mes
explications.
Je suis donc un peu bloqué :( Je ne connais pas XslTransform, je vais
regardé dans cette direction à moins que mes précisions ne vous apportent
d'autres idées.

Merci

Reg


"Sébastien PICAMELOT" a écrit :

> Bonjour,
>
> les images peuvent être affichées de différentes façons :
>
> - soit un contrôle Image est créé puis ajouté à la collection des contrôles
> de la WebPart (dans ce cas il faut supprimer la méthode RenderWebpart).
> Ex:
> protected override void AddChildControls()
> {
> // this.Controls.Add(...)
> }
>
> - soit l'équivalent HTML de l'image est généré puis écrit dans le flux de
> sorti
> Ex :
> protected override RenderWebPart(HtmlTextWriter output)
> {
> // output.Write("<img src="..." />");
> }
>
> - soit la WebPart délègue l'affichage à un XslTransform
>
>
> Les images peuvent faire parti du .cab (ne pas oublier de les mettre
> "Content" en action de génération pour le fichier image). Le fichier
> manifest.xml doit les référencer de cette façon :
>
> <Assemblies>
> <Assembly>
> <ClassResources>
> <ClassResource FileName ="mon_image.png" />
> </ClassResources>
>
> ...
> </Assembly>
> </Assemblies>
>
> Si un fichier .ddf est utilisé, le fichier image doit aussi être présent
> dans le fichier ddf.
>
> J'espère que ça vous sera utile.
>
> --
> Sébastien PICAMELOT
> --------------------------------------
> http://blogs.developpeur.org/gribouillon
>
>
>
> "Reg" a écrit :
>
> > Bonjour,
> >
> > J'ai un projet de WebPart dans lequel j'ai un dossier contenant des images
> > et fichiers texte. Je voudrai afficher les images mais je n'y parviens pas :
> > Image myImage = new Image();
> > myImage.ImageUrl = "~/images/test.gif";
> >
> > Ce type de code fonctionne dans une page ASP.Net classique mais pas dans un
> > projet WebPart SPS (VS 2003, .NET 1.1)
> >
> > J'utilise un projet de déploiement CAB mais comment est géré mon dossier
> > d'images ?
> > stsadm -o addwppack -filename myproject.cab
> >
> > Merci pour vos lumières...


Avatar
Reg
Merci pour ces informations. Je teste et vous tiens informé.

Reg

"Sébastien PICAMELOT" a écrit :

J'ai commis une erreur avec la méthode AddChildControls(). Utilisez en fait
la méthode CreateChildControls pour ajouter la datagrid, et utilisez la
méthode EnsureChildControls dans la méthode RenderWebPart.

Vous trouverez un exemple ici :
http://www.devx.com/dotnet/Article/17518/0/page/5

La méthode XslTransform est un autre moyen de générer du HTML, plus souple
et plus générique à mon gout... mais pour un DataGrid ce sera certainement
plus simple d'utiliser la méthode détaillée ci dessus.

Bon développements,

--
Sébastien PICAMELOT
--------------------------------------
http://blogs.developpeur.org/gribouillon



"Reg" a écrit :

> Bonjour Sébastien,
>
> Tout d'abord merci pour ces informations.
> Je suis plutôt dans le cas de figure n° 2. J'ai renseigné dans manifest.xml
> la liste de mes fichiers qui sont bien présents dans le CAB.
>
> Cependant ma méthode RenderWebPart est utilisée. Je précise aussi que mes
> images s'affichent (euh devraient s'afficher) dans un datagrid que je traite
> en passant par RenderWebPart... J'espère ne pas être trop confu dans mes
> explications.
> Je suis donc un peu bloqué :( Je ne connais pas XslTransform, je vais
> regardé dans cette direction à moins que mes précisions ne vous apportent
> d'autres idées.
>
> Merci
>
> Reg
>
>
> "Sébastien PICAMELOT" a écrit :
>
> > Bonjour,
> >
> > les images peuvent être affichées de différentes façons :
> >
> > - soit un contrôle Image est créé puis ajouté à la collection des contrôles
> > de la WebPart (dans ce cas il faut supprimer la méthode RenderWebpart).
> > Ex:
> > protected override void AddChildControls()
> > {
> > // this.Controls.Add(...)
> > }
> >
> > - soit l'équivalent HTML de l'image est généré puis écrit dans le flux de
> > sorti
> > Ex :
> > protected override RenderWebPart(HtmlTextWriter output)
> > {
> > // output.Write("<img src="..." />");
> > }
> >
> > - soit la WebPart délègue l'affichage à un XslTransform
> >
> >
> > Les images peuvent faire parti du .cab (ne pas oublier de les mettre
> > "Content" en action de génération pour le fichier image). Le fichier
> > manifest.xml doit les référencer de cette façon :
> >
> > <Assemblies>
> > <Assembly>
> > <ClassResources>
> > <ClassResource FileName ="mon_image.png" />
> > </ClassResources>
> >
> > ...
> > </Assembly>
> > </Assemblies>
> >
> > Si un fichier .ddf est utilisé, le fichier image doit aussi être présent
> > dans le fichier ddf.
> >
> > J'espère que ça vous sera utile.
> >
> > --
> > Sébastien PICAMELOT
> > --------------------------------------
> > http://blogs.developpeur.org/gribouillon
> >
> >
> >
> > "Reg" a écrit :
> >
> > > Bonjour,
> > >
> > > J'ai un projet de WebPart dans lequel j'ai un dossier contenant des images
> > > et fichiers texte. Je voudrai afficher les images mais je n'y parviens pas :
> > > Image myImage = new Image();
> > > myImage.ImageUrl = "~/images/test.gif";
> > >
> > > Ce type de code fonctionne dans une page ASP.Net classique mais pas dans un
> > > projet WebPart SPS (VS 2003, .NET 1.1)
> > >
> > > J'utilise un projet de déploiement CAB mais comment est géré mon dossier
> > > d'images ?
> > > stsadm -o addwppack -filename myproject.cab
> > >
> > > Merci pour vos lumières...


Avatar
Reg
Bonjour Sébastien,

Merci de me consacrer du temps. J'ai lu l'article (me plait beaucoup)
cependant cela ne répond pas à mes attentes (ou je suis peut être passé à
côté de quelque chose).
Mon rendu du datagrid s'effectue bien au niveau des méthodes
CreateChildControls et RenderWebPart. Tout fonctionne sauf l'accès aux
fichiers images (ou autre d'ailleurs). Je ne vois pas comment SPS stocke ce
type d'information . ????

"Reg" a écrit :

Merci pour ces informations. Je teste et vous tiens informé.

Reg

"Sébastien PICAMELOT" a écrit :

> J'ai commis une erreur avec la méthode AddChildControls(). Utilisez en fait
> la méthode CreateChildControls pour ajouter la datagrid, et utilisez la
> méthode EnsureChildControls dans la méthode RenderWebPart.
>
> Vous trouverez un exemple ici :
> http://www.devx.com/dotnet/Article/17518/0/page/5
>
> La méthode XslTransform est un autre moyen de générer du HTML, plus souple
> et plus générique à mon gout... mais pour un DataGrid ce sera certainement
> plus simple d'utiliser la méthode détaillée ci dessus.
>
> Bon développements,
>
> --
> Sébastien PICAMELOT
> --------------------------------------
> http://blogs.developpeur.org/gribouillon
>
>
>
> "Reg" a écrit :
>
> > Bonjour Sébastien,
> >
> > Tout d'abord merci pour ces informations.
> > Je suis plutôt dans le cas de figure n° 2. J'ai renseigné dans manifest.xml
> > la liste de mes fichiers qui sont bien présents dans le CAB.
> >
> > Cependant ma méthode RenderWebPart est utilisée. Je précise aussi que mes
> > images s'affichent (euh devraient s'afficher) dans un datagrid que je traite
> > en passant par RenderWebPart... J'espère ne pas être trop confu dans mes
> > explications.
> > Je suis donc un peu bloqué :( Je ne connais pas XslTransform, je vais
> > regardé dans cette direction à moins que mes précisions ne vous apportent
> > d'autres idées.
> >
> > Merci
> >
> > Reg
> >
> >
> > "Sébastien PICAMELOT" a écrit :
> >
> > > Bonjour,
> > >
> > > les images peuvent être affichées de différentes façons :
> > >
> > > - soit un contrôle Image est créé puis ajouté à la collection des contrôles
> > > de la WebPart (dans ce cas il faut supprimer la méthode RenderWebpart).
> > > Ex:
> > > protected override void AddChildControls()
> > > {
> > > // this.Controls.Add(...)
> > > }
> > >
> > > - soit l'équivalent HTML de l'image est généré puis écrit dans le flux de
> > > sorti
> > > Ex :
> > > protected override RenderWebPart(HtmlTextWriter output)
> > > {
> > > // output.Write("<img src="..." />");
> > > }
> > >
> > > - soit la WebPart délègue l'affichage à un XslTransform
> > >
> > >
> > > Les images peuvent faire parti du .cab (ne pas oublier de les mettre
> > > "Content" en action de génération pour le fichier image). Le fichier
> > > manifest.xml doit les référencer de cette façon :
> > >
> > > <Assemblies>
> > > <Assembly>
> > > <ClassResources>
> > > <ClassResource FileName ="mon_image.png" />
> > > </ClassResources>
> > >
> > > ...
> > > </Assembly>
> > > </Assemblies>
> > >
> > > Si un fichier .ddf est utilisé, le fichier image doit aussi être présent
> > > dans le fichier ddf.
> > >
> > > J'espère que ça vous sera utile.
> > >
> > > --
> > > Sébastien PICAMELOT
> > > --------------------------------------
> > > http://blogs.developpeur.org/gribouillon
> > >
> > >
> > >
> > > "Reg" a écrit :
> > >
> > > > Bonjour,
> > > >
> > > > J'ai un projet de WebPart dans lequel j'ai un dossier contenant des images
> > > > et fichiers texte. Je voudrai afficher les images mais je n'y parviens pas :
> > > > Image myImage = new Image();
> > > > myImage.ImageUrl = "~/images/test.gif";
> > > >
> > > > Ce type de code fonctionne dans une page ASP.Net classique mais pas dans un
> > > > projet WebPart SPS (VS 2003, .NET 1.1)
> > > >
> > > > J'utilise un projet de déploiement CAB mais comment est géré mon dossier
> > > > d'images ?
> > > > stsadm -o addwppack -filename myproject.cab
> > > >
> > > > Merci pour vos lumières...