Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

AJOUT D'IMAGES ET DE BOUTONS DYNAMIQUEMENT DANS UNE PAGE ASP .NET


Information sur la source

Catégorie :ASP.Net Source .NET ( DotNet ) Niveau : Débutant Date de création : 23/01/2003 Date de mise à jour : 23/01/2003 02:51:18 Vu / téléchargé: 9 809 / 430

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Ce morceau de code montre comment ajouter des Webcontrols dynamiquement dans une page aspx.

La partie HTML (Listimage.aspx) contient un tableau runat "server" vide (sans ligne, ni colonne).

La partie code behind (Listimage.aspx.cs) : Contient un ArrayList définissant les nom des images à afficher, une boucle sur cet ArrayList permet de créer les cellules incluant les nouveaux boutons (avec la gestion d'évènement) et les nouvelles images.
  
 

Source

  • // ------------------------------------------------------------------------------------
  • // PARTIE BEHIND : Listimage.aspx.cs
  • // ------------------------------------------------------------------------------------
  • using System;
  • using System.Collections;
  • using System.ComponentModel;
  • using System.Data;
  • using System.Drawing;
  • using System.Web;
  • using System.Web.SessionState;
  • using System.Web.UI;
  • using System.Web.UI.WebControls;
  • using System.Web.UI.HtmlControls;
  • namespace testona
  • {
  • public class Listimage : System.Web.UI.Page
  • {
  • protected System.Web.UI.WebControls.Label lblClick;
  • protected System.Web.UI.WebControls.Table Table1;
  • // Page_Load()
  • // --------------------------------------------------------------
  • private void Page_Load(object sender, System.EventArgs e)
  • {
  • // Initialise un ArrayList contenant les noms des images a afficher
  • // --------------------------------------------------------------
  • System.Collections.ArrayList lstImage = new ArrayList();
  • int icol = new int();
  • lstImage.Add("ancetre_programme_1.jpg");
  • lstImage.Add("Ancetre_programme_2.jpg");
  • lstImage.Add("AncT3couv.jpg");
  • lstImage.Add("Couv._Fides3_pas_d_f.jpg");
  • lstImage.Add("Fides_1.jpg");
  • // Boucle sur cette liste et affiche les images dans un tableau avec un bouton de choix
  • // --------------------------------------------------------------
  • for (int i=0;i<lstImage.Count;i++)
  • {
  • // Creer les nouveaux Webcontrols a ajouter : Bouton et Image
  • // --------------------------------------------------------------
  • System.Web.UI.WebControls.Button btn = new Button();
  • System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image();
  • btn.Text="Choix N°" + i;
  • btn.ID = i.ToString();
  • // Ajoute une gestion d evenement sur l'objet bouton (cf. plus bas : methode Bouton_Click())
  • btn.Click += new System.EventHandler(this.Bouton_Click);
  • img.ID = "Img " + i.ToString();
  • img.ImageUrl = "images/" + lstImage[i];
  • // Creer les objets TaleRow et TableCel pour ajouter une cellule dans le tableau
  • // --------------------------------------------------------------
  • System.Web.UI.WebControls.TableRow rw = new TableRow();
  • System.Web.UI.WebControls.TableCell cel = new TableCell();
  • // Gestion de l'affichage sur 2 colonnes
  • // --------------------------------------------------------------
  • if (((Convert.ToInt16(i % 2))==0))
  • {
  • // Colonne 1 : Ajout d'une nouvelle ligne (Row)
  • icol+=1;
  • Table1.Rows.Add(rw);
  • Table1.Rows[icol-1].Cells.Add(cel);
  • // Ajoute les Webcontrols Bouton et Image dans la nouvelle cellule
  • Table1.Rows[icol-1].Cells[0].Controls.Add(btn);
  • Table1.Rows[icol-1].Cells[0].Controls.Add(img);
  • }
  • else
  • {
  • // Colonne 2 : Pas d'ajout de ligne (Row)
  • Table1.Rows[icol-1].Cells.Add(cel);
  • // Ajoute les Webcontrols Bouton et Image dans la nouvelle cellule
  • Table1.Rows[icol-1].Cells[1].Controls.Add(btn);
  • Table1.Rows[icol-1].Cells[1].Controls.Add(img);
  • }
  • }
  • }
  • // Bouton_Click() : Méthode associee a l'evenement click des boutons
  • // --------------------------------------------------------------
  • private void Bouton_Click(object sender, System.EventArgs e)
  • {
  • // Affiche un message contenant l'Identifiant du Bouton venant d'etre cliquer
  • Button ClickedBtn = (Button)sender;
  • lblClick.Text ="Vous venez de choisir le N° " + ClickedBtn.ID.ToString();
  • }
  • // --------------------------------------------------------------
  • #region Web Form Designer generated code
  • override protected void OnInit(EventArgs e)
  • {
  • //
  • // CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
  • //
  • InitializeComponent();
  • base.OnInit(e);
  • }
  • /// <summary>
  • /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
  • /// le contenu de cette méthode avec l'éditeur de code.
  • /// </summary>
  • private void InitializeComponent()
  • {
  • this.Load += new System.EventHandler(this.Page_Load);
  • }
  • #endregion
  • // --------------------------------------------------------------
  • }
  • }
  • // ------------------------------------------------------------------------------------
  • // PARTIE HTML : Listimage.aspx
  • // ------------------------------------------------------------------------------------
  • <%@ Page language="c#" Codebehind="Listimage.aspx.cs" AutoEventWireup="false" Inherits="testona.Listimage" %>
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
  • <HTML>
  • <HEAD>
  • <title>WebForm1</title>
  • <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
  • <meta name="CODE_LANGUAGE" Content="C#">
  • <meta name="vs_defaultClientScript" content="JavaScript">
  • <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  • </HEAD>
  • <body>
  • <form id="Form1" method="post" runat="server">
  • <asp:label ID="lblClick" Runat="server" Text=""></asp:label><br><br>
  • <asp:Table id="Table1" runat="server" Width="250px" Height="124px"></asp:Table>
  • </form>
  • </body>
  • </HTML>
// ------------------------------------------------------------------------------------
// PARTIE BEHIND : Listimage.aspx.cs
// ------------------------------------------------------------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace testona
{
  public class Listimage : System.Web.UI.Page
  {
    protected System.Web.UI.WebControls.Label lblClick;
    protected System.Web.UI.WebControls.Table Table1;

    // Page_Load()
    // --------------------------------------------------------------
    private void Page_Load(object sender, System.EventArgs e)
    {
      // Initialise un ArrayList contenant les noms des images a afficher
      // --------------------------------------------------------------
      System.Collections.ArrayList lstImage = new ArrayList();
      int icol = new int();
      lstImage.Add("ancetre_programme_1.jpg");
      lstImage.Add("Ancetre_programme_2.jpg");
      lstImage.Add("AncT3couv.jpg");
      lstImage.Add("Couv._Fides3_pas_d_f.jpg");
      lstImage.Add("Fides_1.jpg");

      // Boucle sur cette liste et affiche les images dans un tableau avec un bouton de choix
      // --------------------------------------------------------------
      for (int i=0;i<lstImage.Count;i++)
      {
        // Creer les nouveaux Webcontrols a ajouter :  Bouton  et Image
        // --------------------------------------------------------------
        System.Web.UI.WebControls.Button  btn = new Button();
        System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image();
      				
        btn.Text="Choix N°" + i;
        btn.ID = i.ToString();
        // Ajoute une gestion d evenement sur l'objet bouton (cf. plus bas : methode Bouton_Click())
        btn.Click += new System.EventHandler(this.Bouton_Click);	

        img.ID = "Img " + i.ToString();
        img.ImageUrl = "images/" + lstImage[i];
	
        // Creer les objets TaleRow et TableCel pour ajouter une cellule dans le tableau
        // --------------------------------------------------------------
        System.Web.UI.WebControls.TableRow rw = new TableRow();
        System.Web.UI.WebControls.TableCell cel = new TableCell();

        // Gestion de l'affichage sur 2 colonnes
        // --------------------------------------------------------------
        if (((Convert.ToInt16(i % 2))==0))
        {
          // Colonne 1 : Ajout d'une nouvelle ligne (Row)
          icol+=1;
          Table1.Rows.Add(rw);
          Table1.Rows[icol-1].Cells.Add(cel);
          // Ajoute les Webcontrols Bouton et Image dans la nouvelle cellule
          Table1.Rows[icol-1].Cells[0].Controls.Add(btn);
          Table1.Rows[icol-1].Cells[0].Controls.Add(img);
        }
        else
        {
          // Colonne 2 : Pas d'ajout de ligne (Row)
          Table1.Rows[icol-1].Cells.Add(cel);
          // Ajoute les Webcontrols Bouton et Image dans la nouvelle cellule
          Table1.Rows[icol-1].Cells[1].Controls.Add(btn);
          Table1.Rows[icol-1].Cells[1].Controls.Add(img);
        }
      }
    }

    // Bouton_Click() : Méthode associee a l'evenement click  des boutons
    // --------------------------------------------------------------
    private void Bouton_Click(object sender, System.EventArgs e)
    {
      // Affiche un message contenant l'Identifiant du Bouton venant d'etre cliquer
      Button ClickedBtn = (Button)sender;
      lblClick.Text ="Vous venez de choisir le N° " + ClickedBtn.ID.ToString();
    }


    // --------------------------------------------------------------
    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
      //
      // CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
      //
      InitializeComponent();
      base.OnInit(e);
    }
		
    /// <summary>
    /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
    /// le contenu de cette méthode avec l'éditeur de code.
    /// </summary>
    private void InitializeComponent()
    {    
      this.Load += new System.EventHandler(this.Page_Load);
    }
    #endregion
    // --------------------------------------------------------------
  }
}


// ------------------------------------------------------------------------------------
// PARTIE HTML : Listimage.aspx
// ------------------------------------------------------------------------------------

<%@ Page language="c#" Codebehind="Listimage.aspx.cs" AutoEventWireup="false" Inherits="testona.Listimage" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>

<HEAD>
    <title>WebForm1</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>

<body>
    <form id="Form1" method="post" runat="server">
    <asp:label ID="lblClick" Runat="server" Text=""></asp:label><br><br>
    <asp:Table id="Table1" runat="server" Width="250px" Height="124px"></asp:Table>
    </form>
</body>
</HTML>  

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.