Web Part affichant les dossiers en cours d'un utilisateur

ToXXic_57 Messages postés 8 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 7 avril 2005 - 21 févr. 2005 à 19:48
ToXXic_57 Messages postés 8 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 7 avril 2005 - 1 mars 2005 à 20:14
Je suis entrain de développer une Web Part qui afficherait les dossiers en cours d'un utilisateur voulu.
La première chose que j'ai faite était de mettre en place la bibliothèque de documents (celle spécifique à la "gestion des pannes").
Ensuite mon code consiste à créer une DropDownList qui permettra de sélectionner un utilisateur puis, en cliquant sur un bouton, de voir tous les documents de cet utilisateur.

Ma DropDownList fonctionne bien mais j'ai un problème pour créer le bouton. J'aimerais, après avoir cliqué sur le bouton, récupérer tous les documents d'un utilisateur à partir du champ "Assigné à"

Voici mon code :


using System;


using System.ComponentModel;


using System.Web.UI;


using System.Web.UI.WebControls;


using System.Xml.Serialization;


using Microsoft.SharePoint;


using Microsoft.SharePoint.Utilities;


using Microsoft.SharePoint.WebPartPages;


using Microsoft.SharePoint.WebControls; //Utilise la méthode SPControl qui permet d'obtenir le site courant sur


//laquelle s'exécute la WebPart


using System.Collections; //Nécessaire car on utilise un ArrayList pour récupérer les valeurs de la liste SharePoint


namespace WebPartDropDown


{


/// <summary>


/// Description for WebPart1.


/// </summary>


[DefaultProperty("Text"),


ToolboxData("<{0}:WebPart1 runat=server></{0}:WebPart1>"),


XmlRoot(Namespace="WebPartDropDown")]


public class WebPart1 : Microsoft.SharePoint.WebPartPages.WebPart


{


private const string defaultText = "";


private string text = defaultText;




//Déclaration en global


Button btnOK = new Button();


Label lblResult = new Label();


[Browsable(true),


Category("Miscellaneous"),


DefaultValue(defaultText),


WebPartStorage(Storage.Personal),


FriendlyName("Text"),


Description("Text Property")]


public string Text


{


get


{


return text;


}


set


{


text = value;


}


}




/// <summary>


/// This method gets the custom tool parts for this Web Part by overriding the


/// GetToolParts method of the WebPart base class. You must implement


/// custom tool parts in a separate class that derives from


/// Microsoft.SharePoint.WebPartPages.ToolPart.


/// </summary>


///<returns>An array of references to ToolPart objects.</returns>


// public override ToolPart[] GetToolParts()


// {


// ToolPart[] toolparts = new ToolPart[2];


// WebPartToolPart wptp = new WebPartToolPart();


// CustomPropertyToolPart custom = new CustomPropertyToolPart();


// toolparts[0] = wptp;


// toolparts[1] = custom;


// return toolparts;


// }




/*/// <summary>


/// Render this Web Part to the output parameter specified.


/// </summary>


/// The HTML writer to write out to


protected override void RenderWebPart(HtmlTextWriter output)


{


output.Write(SPEncode.HtmlEncode(Text));


}*/


// Propriétés


private string _listName;


private string _fieldName;


private string _displayText;


[Browsable(true),


Category("Définitions"), DefaultValue(""),


WebPartStorage(Storage.Personal),


FriendlyName("Nom de la liste"),


Description("Indiquer le nom de la liste SharePoint du site courant")]


public string ListName


{


get { return _listName; }


set { _listName = value;}


}


[Browsable(true),


Category("Définitions"), DefaultValue(""),


WebPartStorage(Storage.Personal),


FriendlyName("Nom du champ"),


Description("Indiquer le nom du champ de la liste SharePoint")]


public string FieldName


{


get { return _fieldName; }


set { _fieldName = value;}


}


[Browsable(true),


Category("Définitions"), DefaultValue(""),


WebPartStorage(Storage.Personal),


FriendlyName("Libellé"),


Description("Indiquer le libellé à afficher")]


public string DisplayText


{


get { return _displayText; }


set { _displayText = value;}


}


public WebPart1()


{


_listName = "";


_fieldName = "";


_displayText = "";


}


// Contrôle enfant


protected DropDownList myList;


protected override void CreateChildControls()


{


// Initialisation du contrôle DropDownList


myList = new DropDownList();


myList.ID = "myList1";


this.Controls.Add(myList);


this.PreRender += new EventHandler(WebPart1_PreRender);


//Initialisation du contrôle Button


Button btnOK = new Button();


btnOK.Click +=new EventHandler(btnOK_Click);


btnOK.Text = "OK";


this.Controls.Add(btnOK);


this.Controls.Add(lblResult);


}


private void WebPart1_PreRender(object sender, EventArgs e)


{


// La liste est "bindée" à ce niveau pour prendre en compte


// les modifications des propriétés du composant WebPart


Bind_ddlist();


}


private void Bind_ddlist()


{


// Le composant WebPart n'est pas configuré


if (ListName "" || FieldName "")


return;


// Si les propriétés n'ont pas changé, il n'est pas nécessaire de charger à nouveau


// les informations car elles sont conservées dans le viewstate du contrôle


if ( myList.Items.Count == 0 || ((string) ViewState["ListName"] != ListName) ||


( (string) ViewState["FieldName"] != FieldName) )


{


// Pour gérer les modifications de configuration


ViewState["ListName"] = ListName;


ViewState["FieldName"] = FieldName;


myList.Items.Clear();


// Récupération des données de la liste


myList.DataSource = GetListData(ListName, FieldName);


myList.DataBind();


}


}


/// Retourne les valeurs d'un champ d'une liste SharePoint


///


/// Nom de la liste


/// Nom du champ


/// un ArrayList contenant toutes les valeurs du champ


private ArrayList GetListData( string listName, string fieldName)


{


ArrayList aList = new ArrayList();


SPWeb mySite = SPControl.GetContextWeb(Context);


SPList myList = mySite.Lists[listName];


// Pour chaque item de la liste


foreach ( SPListItem myItem in myList.Items )


{


aList.Add(myItem[fieldName]);


}


return aList;


}


/// Render this Web Part to the output parameter specified.


///


/// The HTML writer to write out to


protected override void RenderWebPart(HtmlTextWriter output)


{


EnsureChildControls();


// Placer ici le code utilisateur pour initialiser la page


try


{


// S'il n'existe aucune valeur pour les propriétés Liste et Champ


// le composant WebPart doit être configuré


if (ListName "" || FieldName "")


{


output.Write("Configurez le composant WebPart et sélectionnez une liste et un champ :");


}


else


{


output.RenderBeginTag(HtmlTextWriterTag.Table);


output.RenderBeginTag(HtmlTextWriterTag.Tr);


output.RenderBeginTag(HtmlTextWriterTag.Td);


output.Write(DisplayText);


output.RenderEndTag();




//Rendu html de la DropDownList


output.RenderBeginTag(HtmlTextWriterTag.Td);


this.myList.RenderControl(output);


output.RenderEndTag();


//Rendu html du bouton


output.RenderBeginTag(HtmlTextWriterTag.Td);


this.lblResult.RenderControl(output);


output.RenderEndTag();


output.RenderEndTag();


output.RenderEndTag();


}


}


catch (Exception e)


{


output.Write(e.ToString());


}


}


private void btnOK_Click(object sender, EventArgs e)


{


lblResult.Font.Bold = true;


lblResult.Text = "ça fonctionne!!";


}


}


}

Premier problème, mon bouton ne s'affiche même pas
Ensuite quelle méthode je dois utiliser pour récupérer les documents à partir du champ "Assigné à"

11 réponses

ToXXic_57 Messages postés 8 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 7 avril 2005
28 févr. 2005 à 08:58
Je viens aux nouvelles concernant ma WebPart..
Personne ne pourrait me donner une piste à suivre svp ?

Meci d'avance
0
kach23 Messages postés 16 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 14 septembre 2005
28 févr. 2005 à 14:12
salut,



t'as pas oublié ca par hasard?



this.
btnOK
.RenderControl(output);



++
0
ToXXic_57 Messages postés 8 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 7 avril 2005
28 févr. 2005 à 15:18
Merci,

Oui effectivement c'est beaucoup mieux comme ça

As-tu une idée de comment je pourrais récupérer ces éléments en fonction du champ "Assigné à" ?

Déjà il me faut créer une fonction onclick non ?
0
kach23 Messages postés 16 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 14 septembre 2005
28 févr. 2005 à 17:56
désolé,

je peux pas t'aider plus, je suis dans la meme embrouille que toi, j'ai d'ailleurs des problemes pour faire passer mes composants comme digne de confiance a sps.

des que je veux executer du code cotés serveurs ca m'envoie bouler.

t'aurais pas des liens pour creer proprement une webpart, avec connection base de donnée.

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ToXXic_57 Messages postés 8 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 7 avril 2005
28 févr. 2005 à 20:09
As-tu vérifié dans ton web.config que le trust level est à Full ou à Medium ?
As-tu mis les SafeControls qu'il faut ?

Sinon je fais parti d'un forum sur le site www.sharepoint-france.com
Tu y trouveras peut-être ton bonheur, il y a quelques tuto intéressants

J'ai réussi à faire la fonction click pour le bouton, mais pour l'instant j'affiche simplement une phrase.
A mon avis il faut faire comme ça :

Si le champ "Assigné à" est égal à l'utilisateur sélectionné
On affiche tous les documents correspondants
0
kach23 Messages postés 16 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 14 septembre 2005
1 mars 2005 à 08:43
dis moi toxxic_57 c parce que t'es de moselle?
si c'est le cas le monde est petit, je suis de metz.

merci pour l'adresse
++
0
ToXXic_57 Messages postés 8 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 7 avril 2005
1 mars 2005 à 09:26
lol c marrant
Oui je suis de moselle, près de Forbach et j'ai un appart sur Metz
0
kach23 Messages postés 16 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 14 septembre 2005
1 mars 2005 à 12:14
par contre moi je suis de metz mais je bosse a paris.


je connais qu'une personne sur forbach, un sélim, on sait jamais le monde est tellement petit.


et toxxic, c parce que t'aime bien britney???


je te alisse bosser, d'ailleurs je suis a la traine !


++


Si t'as un bon plan boulot sur la region n'hesite pas a me contacter.


[mailto:kach23@wanadoo.fr kach23@wanadoo.fr] meme si je mon boulot est sympa sur paris, la region me mank
0
ToXXic_57 Messages postés 8 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 7 avril 2005
1 mars 2005 à 12:40
Sélim... j'en connais pas non

Eh oui Britney jsuis fan! Ca peut paraître bizarre mais bon.. voila koi lol

A la prochaine
++
0
kach23 Messages postés 16 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 14 septembre 2005
1 mars 2005 à 15:50
lol

moi j'aime bcp, j'etais a son concert a Gand en belgique, tu dois donc connaitre

www.britneymagnet.com

ma copine est fan par contre voila pourkoi je connais ce site.

www.paperdollheaven.com c sympa aussi.

alle ++
0
ToXXic_57 Messages postés 8 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 7 avril 2005
1 mars 2005 à 20:14
J'étais la voir à Bercy, c'était bien! Dommage qu'elle n'a pas chanté en live...

Oui j'connaissais ce site mais ça faisait longtemps que j'y étais plus.
Bon, on s'éloigne du sujet là
Si tu veux j'ai msn, tu peux m'filer ton pseudo par mail

[mailto:scaryspawn@wanadoo.fr scaryspawn@wanadoo.fr]

@+
0
Rejoignez-nous