Condividi tramite


Procedura: convertire le pagine Web Form in controlli utente ASP.NET

Aggiornamento: novembre 2007

Se si è sviluppata una pagina Web ASP.NET e si desidera accedere alle relative funzionalità dall'applicazione, sarà possibile apportare alcune lievi modifiche alla pagina per trasformarla in un controllo utente.

Per convertire una pagina Web ASP.NET a file singolo in un controllo utente

  1. Rinominare il controllo utilizzando l'estensione file ASCX.

  2. Rimuovere dalla pagina gli elementi html, body e form.

  3. Modificare la direttiva @ Page in una direttiva @ Control.

  4. Rimuovere tutti gli attributi della direttiva @ Control, tranne Language, AutoEventWireup, se esistente, CodeFile e Inherits.

  5. Includere un attributo className nella direttiva @ Control. In questo modo il controllo utente può essere fortemente tipizzato quando viene aggiunto a una pagina.

Per convertire una pagina Web ASP.NET code-behind in un controllo utente

  1. Rinominare il file ASPX utilizzando l'estensione file ASCX.

  2. Rinominare il file code-behind utilizzando l'estensione file ASCX.VB o ASCX.CS in base al linguaggio di programmazione del file code-behind.

  3. Aprire il file code-behind e cambiare la classe da cui eredita da Page a UserControl.

  4. Nel file ASPX, effettuare le operazioni riportate di seguito.

    1. Rimuovere dalla pagina gli elementi html, body e form.

    2. Modificare la direttiva @ Page in una direttiva @ Control.

    3. Rimuovere tutti gli attributi della direttiva @ Control, tranne Language, AutoEventWireup, se esistente, CodeFile e Inherits.

    4. Nella direttiva @ Control, cambiare l'attributo CodeFile per puntare al file code-behind rinominato.

  5. Includere un attributo className nella direttiva @ Control. In questo modo il controllo utente può essere fortemente tipizzato quando viene aggiunto a una pagina.

Esempio

Nell'esempio riportato di seguito vengono illustrati una pagina Web ASP.NET a file singolo nella sua forma originale, nonché il controllo utente risultante dopo la conversione della pagina.

Nota sulla sicurezza:

L'esempio include una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per ulteriori informazioni, vedere Cenni preliminari sugli attacchi tramite 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/>

Vedere anche

Attività

Procedura: creare controlli utente ASP.NET

Concetti

Cenni preliminari sui controlli utente ASP.NET