IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SharePoint .NET Discussion :

webpart + datagrid


Sujet :

SharePoint .NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 49
    Points : 29
    Points
    29
    Par défaut webpart + datagrid
    bonjour à tous

    je galère sur un webpart que ej voudrais mettre en place :
    le principe est simple je voudrais avoir une lsie de contacts (tous les contatcs ) qaund je me connecte sur ma webpart .
    --> ca ok pas de soucis ; j'ai créé une vue dans sql manager et je map cette vue avec un .dbml . j'obtiends donc ma liste complète avec les chamsp selectionnés lors de la conception de la vue.

    Ce que je voudrais faire :
    j'aimerai avoir deux textbox du style :
    par nom
    par fonction suivi de deux boutons .
    Quand j'aurais saisi du texte dans l'une de ces zones, je voudrais qua la page se recharge avec la selection correspondante (ex si je saisi "chef" dans la zone fonction, je voudrais en cliquant sur le bouton ok, avoir la liste de tous les chefs de services.

    voici mon code
    using System;
    using System.Runtime.InteropServices;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Serialization;

    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;
    using Microsoft.SharePoint.WebPartPages;
    using System.Drawing.Design;
    using System.Drawing;
    namespace WEBPART_annuaireGenepi
    {
    [Guid("4aac307b-f91e-4b05-a09c-df0c5130008a")]
    public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
    {
    // DEFINITION DES composants "graphique" de la page
    DataGrid mygrid = new DataGrid();
    ButtonColumn mybut = new ButtonColumn();
    TextBox byname = new TextBox();
    TextBox byfonc = new TextBox();
    TextBox lblMessage = new TextBox();
    String topClicBouton = "";
    Button boutnom = new Button();
    Button boutfonc = new Button();

    // instance du data context LINQ
    DataClasses1DataContext ledatc = new DataClasses1DataContext();


    public WebPart1()
    {
    this.ExportMode = WebPartExportMode.All;
    }

    public void critFoncSearchZone(object sender, EventArgs e)
    {
    topClicBouton = "F";

    }

    public void critNameSearchZone(object sender, EventArgs e)
    {
    topClicBouton = "N";

    }

    void mygrid_ItemCommand(object sender, DataGridCommandEventArgs e)
    {
    lblMessage.Width = 750;
    lblMessage.Text = "Ligne a editer en page detail : " + e.Item.Cells[2].Text + " " + e.Item.Cells[3].Text;
    }

    protected override void CreateChildControls()
    {
    base.CreateChildControls();


    // CONCEPTION DU TABLEAU haut
    // entête

    this.Controls.Add(new LiteralControl("<table cellspacing='3' cellpadding='5' align='center'>"));
    // titre
    this.Controls.Add(new LiteralControl("<tr>"));
    this.Controls.Add(new LiteralControl("<td style='width:450px' colspan = 6>"));
    this.Controls.Add(new LiteralControl("<B>Annuaire des Contacts GENEPI</B>"));
    this.Controls.Add(new LiteralControl("</td>"));
    this.Controls.Add(new LiteralControl("</tr>"));

    // critères nom
    this.Controls.Add(new LiteralControl("<tr>"));
    this.Controls.Add(new LiteralControl("<td style='width:225px'>"));
    this.Controls.Add(new LiteralControl("Par nom :"));
    this.Controls.Add(new LiteralControl("</td>"));
    this.Controls.Add(new LiteralControl("<td>"));
    this.Controls.Add(byname);
    this.Controls.Add(new LiteralControl("</td>"));
    this.Controls.Add(new LiteralControl("<td>"));
    boutnom.Text = "ok";
    boutnom.CausesValidation = true;
    this.Controls.Add(boutnom);
    this.Controls.Add(new LiteralControl("</td>"));

    // critères fonction
    this.Controls.Add(new LiteralControl("<td>"));
    this.Controls.Add(new LiteralControl("<td style='width:225px'>"));
    this.Controls.Add(new LiteralControl("Par fonction :"));
    this.Controls.Add(new LiteralControl("</td>"));
    this.Controls.Add(new LiteralControl("<td>"));
    this.Controls.Add(byfonc);
    this.Controls.Add(new LiteralControl("</td>"));
    this.Controls.Add(new LiteralControl("<td>"));
    this.Controls.Add(boutfonc);
    boutfonc.CausesValidation = true;
    this.Controls.Add(new LiteralControl("</td>"));
    this.Controls.Add(new LiteralControl("</tr>"));
    this.Controls.Add(new LiteralControl("</table>"));

    // gestion des clicks sur les boutons noms ou fonctions
    boutnom.Click += (critNameSearchZone);
    boutfonc.Click += (critFoncSearchZone);



    this.Controls.Add(new LiteralControl("<table cellspacing='3' cellpadding='5' align='center'>"));
    this.Controls.Add(new LiteralControl("<tr>"));
    this.Controls.Add(new LiteralControl("<td style='width:450px'>"));

    if (topClicBouton == "N")
    {
    // Si on clique sur le bouton fonction, je veux utiliser la vue par defautl (nom)
    mygrid.DataSource = ledatc.vueTestAlainPortailSharePoint_AnnuaireGenepi;
    }
    else
    {
    // sinon, je voudrais voir apparaitre la vue par "fonction"
    mygrid.DataSource = ledatc.vueTestAlainPortailSharepoint_AnnuaireGenepi_Fonc;
    }

    mygrid.AlternatingItemStyle.BackColor = Color.Bisque;
    mygrid.HeaderStyle.BackColor = Color.Brown;
    mygrid.HeaderStyle.ForeColor = Color.Bisque;
    mybut.ButtonType = ButtonColumnType.PushButton;
    mybut.Text = "detail";
    mybut.CausesValidation = true;
    mygrid.Columns.Add(mybut);
    mygrid.DataBind();


    // ici on gere le lien sur les boutons pour acceder à la fiche détail selectionnée
    mygrid.ItemCommand += (mygrid_ItemCommand);


    this.Controls.Add(mygrid);
    this.Controls.Add(lblMessage);
    this.Controls.Add(new LiteralControl("</td>"));
    this.Controls.Add(new LiteralControl("</tr>"));

    // fin balise table
    this.Controls.Add(new LiteralControl("</table>"));
    }
    }
    }
    ce que j'obtiens par defaut , c'est la liste des contacts par fonction (alors que je la voudrais par nom) et quand je clique sur les boUtons ça ne change rien (alors que les evenementS sont bien utilisés car en plaçant qq messagess test je vois bien que je passe dedans)

    Quelqu'un voit il ou je me plante ????
    mERCI d'avacne à vous tous
    bonne journée
    AL

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    A mon avis, l'événement Click étant traité *après* CreateChildControl, c'est normal

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    Merci pour cette réponse rapide ...
    je viens de deplacer le le bloc comme ceci
    protected override void CreateChildControls()
    {
    // gestion des clicks sur les boutons noms ou fonctions
    boutnom.Click += (critNameSearchZone);
    boutfonc.Click += (critFoncSearchZone);

    base.CreateChildControls();
    ... mais ça ne change rien ...
    c'est bien ce que tu voulais dire ????

  4. #4
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Nan, je veux dire, quand tu cliques sur ton bouton boutfonc, ta page va appeler les fonctions suivantes :
    - CreateChildControl
    - critFoncSearchZone

    donc, tu chargeras toujours le même contenu...

    De tête (pas de VS sous la main...), tu dois pouvoir rappeler carrément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mygrid.DataSource = ledatc.vueTestAlainPortailSharepoint_AnnuaireGenepi_Fonc;
    mygrid.DataBind();

    Youhou, champagne, 2000 messages

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    ah puree ç'etait donc là ! !
    j'avais fait un truc comme ça mais sans rajouter le mygrid.databind derrierre
    effectivement ça fonctionne mieux !!!

    Tu vois le 2000ème message m' a porté chance !!
    un grand merci !! Alain

  6. #6
    Membre éclairé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2007
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 724
    Points : 787
    Points
    787
    Par défaut
    Bonjour
    Très bien si vous avez trouvé la solution.
    N'était-ce pas plus facile d'utiliser les deux webparts standards
    - liste contacts (avec un affichage spécifique)
    - formulaire (contenant votre critère de filtre en liste déroulante)
    et de faire une connexion entre les deux ?
    Jean-François Fustec - Consultant Formateur - SharePoint - Office 365 - Infopath Lotus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.net] Changer couleur ligne DataGrid
    Par bguihal dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/07/2016, 06h54
  2. Pb d'update dans une DataGrid
    Par bidson dans le forum XMLRAD
    Réponses: 11
    Dernier message: 27/05/2003, 14h11
  3. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44
  4. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo