Bonjour!

Voici mon problème :
je voudrais générer un tableau HTML avec 5 colonnes. Le truc c'est que les deux premières colonnes sont des colonnes de boutons, la troisième colonne est le résultat d'une requête, la quatrième le résultat d'une autre requête et la cinquième de même. Pour l'instant je ne fais que les 3 premières colonnes.
Il me faudrait donc générer dynamiquement les boutons, car le nombre de lignes dépend du nombre de résultats des requêtes.
J'ai essayé un Controls.Add(UnBoutonCrééPlusTôt), mais une exception est lancée avec un message indiquant qu'un bouton doit se trouver dans un form avec runat="server", donc je ne sais pas où il me le génère...

Voici un bout du code pour mieux appréhender "la chose" :

Dans le code-behind :
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
 
Function TabClasses()
        If Not IsPostBack Then
            'Dim Retour As String
            Dim bouton As New Button()
            Dim Code As String = "<table border><tr><td></td><td></td><td></td><td>Nom de la classe</td></tr>"
            Dim Cnx As SqlConnection
            Dim reader As SqlDataReader
            Dim i As Integer = 1
 
            Cnx = New BdD().SeConnecter
            Dim command As SqlCommand = New SqlCommand(MaRequete, Cnx)
            'Paramètres
            reader = command.ExecuteReader()
            While reader.Read()
                Code += "<tr><td style='width:0px'><input type='hidden' id='hide" & reader.GetInt32(0) & "' value='" & reader.GetInt32(0) & "'/></td><td>"
                bouton.ID = "BtnSuppr" & reader.GetInt32(0)
                bouton.Text = "Supprimer"
                Controls.AddAt(i, bouton)
                AddHandler bouton.Click, AddressOf Me.BtnDynaclick
                Code += "</td><td>"
                bouton.ID = "BtnModif" & reader.GetInt32(0)
                bouton.Text = "Modifier"
                Controls.AddAt(i, bouton)
                AddHandler bouton.Click, AddressOf Me.BtnDynaclick
                Code += "</td><td>" & reader.GetString(1) & "</td></tr>"
                i += 1
            End While
 
            Code += "</table>"
            'Fermeture reader
            If Not IsNothing(reader) Then reader.Close()
            'Fermeture connection
            If Not IsNothing(Cnx) Then Cnx.Close()
            Return Code
        End If
    End Function
Dans la page aspx :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<div class="contenu3">
           <asp:Panel ID="PanelDg" runat="server" HorizontalAlign="Center" Width="560px">
            <%=TabClasses()%>
<br />
            <asp:Button ID="BtnCreate" runat="server" Height="23px" Text="Créer une classe" Width="110px" /></asp:Panel>

etc...
Je remercie d'avance celui/ceux qui m'apportera/ront la réponse!