OVH Cloud OVH Cloud

Création composant graphique

1 réponse
Avatar
Fabrice Bois
Bonjour,
voici mon probème :

Je dois afficher plusieurs fois (à la demande) la même série de
composant. La premiere chose que j'ai fait est de placer ces composant dans
un .ascx dont voici la structure :

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="Detail.ascx.vb"
Inherits="Detail" %>
<table>
<tr>
<td>
<asp:TextBox ID="TextBox1" runat="server"
CssClass="texte"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="TextBox2" runat="server"
CssClass="texte"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="TextBox3" runat="server"
CssClass="texte"></asp:TextBox>
</td>
<td>
<table>
<tr>
<td rowspan="2">
<asp:ListBox ID="ListBox1" runat="server"
DataSourceID="SqlDataSource1" DataTextField="NOM" DataValueField="AGENT"
TabIndex="8"></asp:ListBox>
</td>
<td>
<asp:Button ID="BAjout" runat="server" CausesValidation="False"
Font-Bold="True" TabIndex="-1" Text=">" />
</td>
<td rowspan="2" style="width: 23px">
<asp:Label ID="Label1" runat="server"></asp:Label><br />
<asp:Label ID="Label2" runat="server"
Visible="False"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Button ID="BRetire" runat="server"
CausesValidation="False" Font-Bold="True" TabIndex="-1" Text="X" />
</td>
</tr>
</table>
<asp:SqlDataSource ID="SDSConducteur" runat="server"
ConnectionString="<%$ ConnectionStrings:NETLOCALConnectionString %>"
SelectCommand="MaRequete">
</asp:SqlDataSource>
</td>
</tr>
</table>

Puis, sur la page où je dois afficher ce contrôle, j'ai placé un Placeholder
comme ceci :
<asp:placeholder id="PHDetail" runat="server" />
ainsi qu'un bouton.
Voici le code associé au bouton :

Protected Sub BAjoutDetail_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles BAjoutDetail.Click
Dim SFDR As Detail= New Detail()
SFDR.DataBind()
PHDetail.Controls.Add(SFDR)
End Sub

Seulement, même si cela ne m'affiche pas d'erreur, aucun des composant du
.ascx n'est visible. Quelqu'un à une idée ?
En vous remerciant d'avance
Fabrice Bois

1 réponse

Avatar
Fabrice Bois
C'est bon, j'ai trouvé ma réponse ici :

http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpgenref/html/gngrfreference.asp


"Fabrice Bois" a écrit dans le message de news:

Bonjour,
voici mon probème :

Je dois afficher plusieurs fois (à la demande) la même série de
composant. La premiere chose que j'ai fait est de placer ces composant
dans un .ascx dont voici la structure :

<%@ Control Language="VB" AutoEventWireup="false"
CodeFile="Detail.ascx.vb" Inherits="Detail" %>
<table>
<tr>
<td>
<asp:TextBox ID="TextBox1" runat="server"
CssClass="texte"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="TextBox2" runat="server"
CssClass="texte"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="TextBox3" runat="server"
CssClass="texte"></asp:TextBox>
</td>
<td>
<table>
<tr>
<td rowspan="2">
<asp:ListBox ID="ListBox1" runat="server"
DataSourceID="SqlDataSource1" DataTextField="NOM" DataValueField="AGENT"
TabIndex="8"></asp:ListBox>
</td>
<td>
<asp:Button ID="BAjout" runat="server" CausesValidation="False"
Font-Bold="True" TabIndex="-1" Text=">" />
</td>
<td rowspan="2" style="width: 23px">
<asp:Label ID="Label1" runat="server"></asp:Label><br />
<asp:Label ID="Label2" runat="server"
Visible="False"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Button ID="BRetire" runat="server"
CausesValidation="False" Font-Bold="True" TabIndex="-1" Text="X" />
</td>
</tr>
</table>
<asp:SqlDataSource ID="SDSConducteur" runat="server"
ConnectionString="<%$ ConnectionStrings:NETLOCALConnectionString %>"
SelectCommand="MaRequete">
</asp:SqlDataSource>
</td>
</tr>
</table>

Puis, sur la page où je dois afficher ce contrôle, j'ai placé un
Placeholder comme ceci :
<asp:placeholder id="PHDetail" runat="server" />
ainsi qu'un bouton.
Voici le code associé au bouton :

Protected Sub BAjoutDetail_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles BAjoutDetail.Click
Dim SFDR As Detail= New Detail()
SFDR.DataBind()
PHDetail.Controls.Add(SFDR)
End Sub

Seulement, même si cela ne m'affiche pas d'erreur, aucun des composant du
.ascx n'est visible. Quelqu'un à une idée ?
En vous remerciant d'avance
Fabrice Bois