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
Rinominare il controllo utilizzando l'estensione file ASCX.
Rimuovere dalla pagina gli elementi html, body e form.
Rimuovere tutti gli attributi della direttiva @ Control, tranne Language, AutoEventWireup, se esistente, CodeFile e Inherits.
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
Rinominare il file ASPX utilizzando l'estensione file ASCX.
Rinominare il file code-behind utilizzando l'estensione file ASCX.VB o ASCX.CS in base al linguaggio di programmazione del file code-behind.
Aprire il file code-behind e cambiare la classe da cui eredita da Page a UserControl.
Nel file ASPX, effettuare le operazioni riportate di seguito.
Rimuovere dalla pagina gli elementi html, body e form.
Rimuovere tutti gli attributi della direttiva @ Control, tranne Language, AutoEventWireup, se esistente, CodeFile e Inherits.
Nella direttiva @ Control, cambiare l'attributo CodeFile per puntare al file code-behind rinominato.
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