Sintassi dichiarativa per il controllo server HtmlForm
Crea un controllo lato server che viene mappato all'elemento HTML <form> e che consente di creare un contenitore per gli elementi di una pagina Web.
<form
DefaultButton="string"
DefaultFocus="string"
EnableViewState="False|True"
Id="string"
SubmitDisabledControls="False|True"
Visible="True|False"
OnDataBinding="OnDataBinding event handler"
OnDisposed="OnDisposed event handler"
OnInit="OnInit event handler"
OnLoad="OnLoad event handler"
OnPreRender="OnPreRender event handler"
OnUnload="OnUnload event handler"
runat="server"
>
<!--Other controls, input forms, and so on.-->
</form>
Note
Utilizzare il controllo HtmlForm per eseguire la programmazione in base all'elemento HTML <form>. Per avvalersi dei servizi di postback, è necessario che tutti i controlli Web Form, siano essi HTML, Web controlli utente o personalizzati, siano annidati tra i tag di apertura e di chiusura corretti del controllo HtmlForm. Se i tag non sono chiusi correttamente, in ASP.NET non viene riconosciuto l'elemento. A seconda del formato dell'elemento, quest'ultimo verrà ignorato oppure verrà generato un errore di compilazione.
Nota |
---|
Non è possibile inserire più di un controllo HtmlForm in una singola pagina Web Form. |
Per impostazione predefinita, l'attributo method del controllo HtmlForm è impostato su POST. Sebbene l'attributo method possa essere personalizzato in base alle specifiche esigenze, l'impostazione dell'attributo method su un valore diverso da GET o POST può interrompere lo stato di visualizzazione incorporato e i servizi di postback forniti da ASP.NET.
Nota |
---|
L'attributo action, che è sempre impostato sull'URL della pagina,non può essere modificato. È pertanto possibile eseguire solo il postback alla pagina. |
Nota |
---|
L'attributo name per gli elementi form è deprecato in XHTML 1.1.Questo controllo non esegue pertanto il rendering dell'attributo name in ASP.NET 4. |
Esempio
Nell'esempio riportato di seguito vengono illustrati tre controlli HtmlButton con un gestore OnServerClick distinto per ogni pulsante. Ciascuno di questi eventi impone un postback al server. Il controllo HtmlForm è necessario per qualsiasi scenario in cui si verifica un postback. Nell'esempio riportato di seguito viene inoltre illustrato che su una pagina Web Form è consentito un solo controllo HtmlForm, compreso un form che supporta più eventi. Se viene inserito più di un controllo HtmlForm, in .NET Framework viene generata un'eccezione.
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>HtmlForm Control</title>
<script runat="server">
Sub Button1_OnClick(Source As Object, e As EventArgs)
Span1.InnerHtml = "You clicked Button1"
End Sub
Sub Button2_OnClick(Source As Object, e As EventArgs)
Span2.InnerHtml = "You clicked Button2"
End Sub
Sub Button3_OnClick(Source As Object, e As EventArgs)
Span3.InnerHtml = "You clicked Button3"
End Sub
</script>
</head>
<body>
<h3>HtmlForm Sample</h3>
<form id="ServerForm" runat="server">
<button id="Button1" runat="server"
onserverclick="Button1_OnClick">
Button1
</button>
<span id="Span1" runat="server" />
<p />
<button id="Button2" runat="server"
onserverclick="Button2_OnClick">
Button2
</button>
<span id="Span2" runat="server" />
<p />
<button id="Button3" runat="server"
onserverclick="Button3_OnClick">
Button3
</button>
<span id="Span3" runat="server" />
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>HtmlForm Control</title>
<script runat="server">
void Button1_OnClick(object Source, EventArgs e)
{
Span1.InnerHtml="You clicked Button1";
}
void Button2_OnClick(object Source, EventArgs e)
{
Span2.InnerHtml="You clicked Button2";
}
void Button3_OnClick(object Source, EventArgs e)
{
Span3.InnerHtml="You clicked Button3";
}
</script>
</head>
<body>
<h3>HtmlForm Sample</h3>
<form id="ServerForm" runat="server">
<button id="Button1" runat="server"
onserverclick="Button1_OnClick">
Button1
</button>
<span id="Span1" runat="server" />
<p />
<button id="Button2" runat="server"
onserverclick="Button2_OnClick">
Button2
</button>
<span id="Span2" runat="server" />
<p />
<button id="Button3" runat="server"
onserverclick="Button3_OnClick">
Button3
</button>
<span id="Span3" runat="server" />
</form>
</body>
</html>