OVH Cloud OVH Cloud

[WSS] récupérer le type d'un site

7 réponses
Avatar
Maxime
Bonjour,

je programme actuellement un Web Part permettant de lister=20
les diff=E9rents sous sites d'un site d'=E9quipe.
En fait je voudrais effectuer un tri sur le type de site :
- Sites
- Espace de travail de document
- Espace de travail de r=E9union
Comme cela est repr=E9sent=E9 quand on va dans "Param=E8tres du=20
site" -> "g=E9rer les sites".

J'ai regard=E9 la doc sur la classe SPWeb mais je n'ai pu=20
trouv=E9 de prpri=E9t=E9 qui donne le type du site...

Quelqu'un connait un moyen de l'obtenir ?

Merci d'avance
Maxime

7 réponses

Avatar
greg
Sur la classe SPWeb, il existe une propriété WebTemplate (retourne un string) qui rend le nom du modèle de site utilisé pour créer le site

Greg.
Avatar
Maxime
Meric pour cette réponse rapide, je vais tester tout de
suite !

-----Message d'origine-----
Sur la classe SPWeb, il existe une propriété


WebTemplate (retourne un string) qui rend le nom du
modèle de site utilisé pour créer le site.

Greg.
.



Avatar
Maxime
Encore une petite question :
j'ai réussi à ajouter les Webtemplate dans la DropDownList
mais j'aimerais maintenant pouvoir trier les sites à
afficher en fonction de la valeur de la doprdown List.
Comment puis je déclencher un évenement en cliquant sur la
liste ? (Je n'ai pas l'habitude d'utiliser les composant
ASP.NET par les classe !)

Merci
-----Message d'origine-----
Sur la classe SPWeb, il existe une propriété


WebTemplate (retourne un string) qui rend le nom du
modèle de site utilisé pour créer le site.

Greg.
.



Avatar
greg
Pour coder l'évenement, il te faut un truc du genre

protected override void CreateChildControls(

..
maDropDownList.AutoPostBack = true
maDropDownList.selectedIndexChanged += new EventHandler (maDropDownList_indexChanged)
..


public void maDropDownList_indexChanged(object sender, EventArgs e

//Je teste l'élément de liste chois
//Je modifie le contenu de ma webpar


Grégory AMICEL.
Avatar
Maxime
Bonjour,

Cette méthode me semblait correcte, mais quand je l'ai mis
en oeuvre elle semble ne pas fonctionner !
En effet, j'ai l'impression que le code dans la fonction
myList_indexChanged n'est jamais éxecuté...

Voici un apercu de mon code :

protected override void CreateChildControls()
{
myLabel = new Label();
myList = new DropDownList();

this.myList.AutoPostBack = true;

this.Controls.Add(myLabel);
this.Controls.Add(myList);

this.myList.SelectedindexChanged += new EventHandler
(myList_indexChanged);
this.PreRender += new EventHandler(WebPart1_PreRender);
}

public void myList_indexChanged(object sender, EventArgs e)
{
myLabel.Text = this.myList.SelectedItem.Value.ToString();
}

privale override void RenderWebPart(HtmlTExtWriter output)
{
EnsureChilControls();

...
myLabel.RenderControl(ouput);
...
}


Tout ca me semble bon, mais n'ayant pas l'habitude des
WebPart j'ai pe fait une erreur toute bête.

Merci pour votre aide
Avatar
greg
J'ai fait le teste et ça marche bien
Essais peut-être de la manière suivante

protected override void CreateChildControls(

myLabel = new Label()
myList = new DropDownList()
myList.AutoPostBack = true
myList.SelectedindexChanged += new EventHandle
(myList_indexChanged)

this.Controls.Add(myLabel)
this.Controls.Add(myList)



public void myList_indexChanged(object sender, EventArgs e

myLabel.Text = myList.SelectedValue.ToString()


privale override void RenderWebPart(HtmlTExtWriter output

RenderChildren(ouput)


Grégory AMICE


----- Maxime wrote: ----

Bonjour

Cette méthode me semblait correcte, mais quand je l'ai mis
en oeuvre elle semble ne pas fonctionner
En effet, j'ai l'impression que le code dans la fonction
myList_indexChanged n'est jamais éxecuté..

Voici un apercu de mon code

protected override void CreateChildControls(

myLabel = new Label()
myList = new DropDownList()

this.myList.AutoPostBack = true

this.Controls.Add(myLabel)
this.Controls.Add(myList)

this.myList.SelectedindexChanged += new EventHandle
(myList_indexChanged)
this.PreRender += new EventHandler(WebPart1_PreRender)


public void myList_indexChanged(object sender, EventArgs e

myLabel.Text = this.myList.SelectedItem.Value.ToString()


privale override void RenderWebPart(HtmlTExtWriter output

EnsureChilControls()

...
myLabel.RenderControl(ouput)
...



Tout ca me semble bon, mais n'ayant pas l'habitude des
WebPart j'ai pe fait une erreur toute bête

Merci pour votre aid
Avatar
Maxime
ReBonjour,

En fait, j'ai tester bcp de chose et le pb venait de la
méthode PreRender qui empéchait les modifications de la
list. J'ai remplacer this.PreRender += new EventHandler
(WebPart1_PreRender) par this.Load += new EventHandler
(WepPartLoad);

Je pense que celà venait du fait que PreRender est appelé
à chaque modification du WP et donc qu'il empéchait
l'appel de la méthode myList_indexChanged.

J'ai résolu mon pb donc tout est bon!

Merci pr votre aide !