Partager via


Comment : convertir des pages Web Forms en contrôles utilisateur ASP.NET

Mise à jour : novembre 2007

Si vous avez développé une page ASP.NET et que vous souhaitez accéder à ses fonctionnalités dans votre application, vous pouvez lui apporter de légères modifications afin de la transformer en contrôle utilisateur.

Pour convertir une page Web ASP.NET à fichier unique en contrôle utilisateur

  1. Renommez le contrôle afin que l'extension du nom de fichier soit .ascx.

  2. Supprimez les éléments html, body et form de la page.

  3. Modifiez la directive @ Page en directive @ Control.

  4. Supprimez tous les attributs de la directive @ Control, sauf Language, AutoEventWireup (si elle est présente), CodeFile et Inherits.

  5. Incluez un attribut className dans la directive @ Control. Cela permet au contrôle utilisateur d'être fortement typé lorsqu'il est ajouté à une page.

Pour convertir une page Web ASP.NET code-behind en contrôle utilisateur

  1. Renommez le fichier .aspx afin que l'extension du nom de fichier soit .ascx.

  2. Renommez le fichier code-behind de façon à lui donner l'extension de nom de fichier .ascx .vb ou .ascx .cs, selon le langage de programmation utilisé pour ce fichier.

  3. Ouvrez le fichier code-behind et transformez la classe dont il hérite, de Page en UserControl.

  4. Dans le fichier .aspx, effectuez les opérations suivantes :

    1. Supprimez les éléments html, body et form de la page.

    2. Modifiez la directive @ Page en directive @ Control.

    3. Supprimez tous les attributs de la directive @ Control, sauf Language, AutoEventWireup (si elle est présente), CodeFile et Inherits.

    4. Dans la directive @ Control, modifiez l'attribut CodeFile pour qu'il pointe vers le fichier code-behind renommé.

  5. Incluez un attribut className dans la directive @ Control. Cela permet au contrôle utilisateur d'être fortement typé lorsqu'il est ajouté à une page.

Exemple

L'exemple suivant montre une page Web ASP.NET à fichier unique sous sa forme initiale, ainsi que le contrôle utilisateur résultant une fois la page convertie.

Note de sécurité :

Cet exemple a une zone de texte qui accepte l'entrée d'utilisateur, ce qui constitue une menace éventuelle pour la sécurité. Par défaut, les pages Web ASP.NET vérifient que les entrées d'utilisateur n'incluent pas de script ou d'éléments HTML. Pour plus d'informations, consultez Vue d'ensemble des attaques de script.

<%@ Page Language="VB" %>
<html>
<script runat=server>
Sub EnterBtn_Click(sender as Object, e as EventArgs)
    Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
End Sub
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
    Enter Name: <asp:textbox id="Name" runat=server/>
    <asp:button Text="Enter" OnClick="EnterBtn_Click"
        runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<html>
<script runat=server>
void EnterBtn_Click(Object sender, EventArgs e)
{
    Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
}
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
    runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
</form>
</body>
</html>
<%@ Control Language="VB" ClassName="SampleUserControl" %>
<h3> <u>User Control</u> </h3>
<script runat=server>
Sub EnterBtn_Click(sender as Object, e as EventArgs)
    Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
End Sub
</script>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
    runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
<%@ Control Language="C#" ClassName="SampleUserControl" %>
<h3> <u>User Control</u> </h3>
<script runat=server>
void EnterBtn_Click(Object Sender, EventArgs e)
{
    Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
}
</script>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>

Voir aussi

Tâches

Comment : créer des contrôles utilisateur ASP.NET

Concepts

Vue d'ensemble des contrôles utilisateur ASP.NET