Bonjour,

je suis actuellement en stage et je dois concevoir un site web en asp.net.
C'est un site immobilier où l'on peut rechercher ou ajouter des biens.
J'ai crée une page où toute la liste des biens s'affiche.

Au chargement de la page donc au pageLoad, je parcours une liste de biens et pour chaque bien je génère le code html correspondant en faisant de nouveaux Literal, Literal.Text ="blabla".

Il y a pour chaque bien, un bouton correspondant qui doit rediriger vers une autre page qui affiche la fiche produit du bien en détail.
Je crée pour cela un bouton asp dynamique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
     Button bt = new Button();
     bt.ID = "btn" + compt;
     bt.Text = "Voir";
     bt.CssClass = "btnVoir";
     bt.Click += new EventHandler(valider_Click);
     PlaceHolder1.Controls.Add(bt);
Cependant j'ai un problème avec l'appelle de la fonction valider_Click au clic du bouton.
En effet quand je clique sur le bouton, la fonction n'est pas appelée et la page de la liste des biens se recharge et est vide (plus aucun biens).
Mon problème est donc que la fonction malgré le click n'est pas appelée
Voici la partie du code concernée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
protected void Page_Load(object sender, EventArgs e)
        {
           int compt = 0;
 
           if (!Page.IsPostBack)
           {
                foreach (Produit p in Passerelle.totalProduit())
                {
 
                    Button bt = new Button();
                    bt.ID = "btn" + compt;
                    bt.Text = "Voir";
                    bt.CssClass = "btnVoir";
                    bt.Click += new EventHandler(valider_Click);
                    PlaceHolder1.Controls.Add(bt);
 
                    Literal Literal1 = new Literal();
                    Literal1.Text += "<div class=\"contenu\">";
                    Literal1.Text += "<table>";
                    Literal1.Text += "<tr>";
                    Literal1.Text += "<td class=\"td1\">" + Passerelle.libelleType(p.IdType) + " - " + p.Surface + "m²</td>";
                    Literal1.Text += "<td class=\"td2\">" + p.Prix + "€</td>";
                    Literal1.Text += "</tr>";
                    Literal1.Text += "</table>";
                    Literal1.Text += "<hr />";
                    Literal1.Text += "<div class=\"img1\">";
                    Literal1.Text += "<img src=\"img/img1.jpg\"/>";
                    Literal1.Text += "</div>";
                    Literal1.Text += "<div class=\"description\">";
                    Literal1.Text += "<span>" + p.Ville + " (" + p.CodePostal + ")</span>";
                    Literal1.Text += "<br />";
                    Literal1.Text += "<p>" + p.Descriptif + "</p>";
                    Literal1.Text += "</div>";
                    Literal1.Text += "<div id=\"tet\" runat=\"server\"></div>";
                    Literal1.Text += "</div>";
 
                    PlaceHolder1.Controls.Add(Literal1);
 
 
                }
 
            }
        }
 
 
        protected void valider_Click(object sender, EventArgs e)
        {
            Session["unProduit"] = Passerelle.totalProduit()[1];
            Server.Transfer("FicheBien.aspx", true); 
        }