Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
Le Blog de Casiiimir
Le Blog de Casiiimir
Publicité
Le Blog de Casiiimir
Archives
28 janvier 2008

Création dynamique d'un contrôle de type GridView


ASP.NET 2.0
Visual
C#

    protected void hlIdee_ClientClick(object sender, EventArgs e)
    {
        panelListeIdees.Visible = true;
        if (sender.GetType().Name.Equals("LinkButton"))
        {
            gvListeIdees.Columns.Clear();

            // Gestion de l'accès à la base de données (requêtes) dans des classes appelées "Manager"
            // Aucune requête SQL n'est donc visible dans le code behind

            Idee_Manager idee_manager = new Idee_Manager();

            BoundField bfAjoutDate = new BoundField();

            // Ajout d'un contrôle de type "lien" dans le GridView
            HyperLinkField hlPreview = new HyperLinkField();
            hlPreview.DataTextField = "preview";
            hlPreview.HeaderText = "Preview";

            // Définition d'une partie du lien (l'id de l'élément sélectionné qui sera utilisé dans l'adresse)
            string[] test = { "id" };
            hlPreview.DataNavigateUrlFields = test;

            BoundField bfAuteur = new BoundField();
            bfAuteur.DataField = "auteur";
            bfAuteur.HeaderText = "Auteur";

            BoundField bfDateCreation = new BoundField();
            bfDateCreation.DataField = "dateCreation";
            bfDateCreation.HeaderText = "Date Creation";

            gvListeIdees.Columns.Add(bfAuteur);
            gvListeIdees.Columns.Add(bfDateCreation);

            DataTable dtListe = null;
            string statut = "";

            // On veut afficher différents contrôles en fonction du lien cliqué.
            switch (((LinkButton)sender).ID)
            {
                case "hlIdeeValide":
                    bfAjoutDate.DataField = "dateValidation";
                    bfAjoutDate.HeaderText = "Date Validation";
                    gvListeIdees.Columns.Add(bfAjoutDate);
                    statut = "valide";
                    dtListe = idee_manager.GetAllIdeeByStatut(statut);
                    break;
                case "hlIdeeAttente":
                    statut = "attente";
                    dtListe = idee_manager.GetAllIdeeByStatut(statut);
                    break;
                case "hlIdeeRefus":
                    bfAjoutDate.DataField = "dateRefus";
                    bfAjoutDate.HeaderText = "Date Refus";
                    gvListeIdees.Columns.Add(bfAjoutDate);
                    statut = "refus";
                    dtListe = idee_manager.GetAllIdeeByStatut(statut);
                    break;
            }

            // Fin de la création du contrôle HyperLink en lui renseignant l'adresse
               // complète à visiter lors de la sélection

            hlPreview.DataNavigateUrlFormatString = "Fiche_Idee.aspx?statut=" + statut + "&id={0}";

            gvListeIdees.Columns.Insert(0, hlPreview);
            gvListeIdees.DataSource = dtListe;

            gvListeIdees.DataBind();
        }
    }

Publicité
Publicité
Commentaires
Publicité