UpdatePanelUpdateMode Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta le possibili modalità di aggiornamento per il contenuto in un controllo UpdatePanel.
public enum class UpdatePanelUpdateMode
public enum UpdatePanelUpdateMode
type UpdatePanelUpdateMode =
Public Enum UpdatePanelUpdateMode
- Ereditarietà
Campi
Always | 0 | Il contenuto del controllo UpdatePanel viene aggiornato per tutti i postback che hanno origine dalla pagina. Sono inclusi i postback asincroni. |
Conditional | 1 | Specifica una serie di condizioni in cui il contenuto del UpdatePanel controllo viene aggiornato. Per altre informazioni, vedere la sezione Osservazioni. |
Esempio
Nell'esempio seguente vengono dichiarati due UpdatePanel controlli. Il primo pannello imposta la UpdatePanel.UpdateMode proprietà su Conditional
. Il secondo pannello è UpdatePanel.UpdateMode impostato su Always
per impostazione predefinita. Un pulsante esterno a entrambi i pannelli viene registrato come controllo postback asincrono usando il ScriptManager.RegisterAsyncPostBackControl metodo . Nel gestore eventi click del pulsante viene chiamato il UpdatePanel.Update metodo del primo pannello se sono trascorsi più di cinque secondi dall'ultimo aggiornamento. In questo scenario, il contenuto del pannello viene aggiornato solo se l'ultimo aggiornamento del pannello era più di cinque secondi fa. Il contenuto del secondo pannello viene sempre aggiornato.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected DateTime LastUpdate
{
get
{
return (DateTime)(ViewState["LastUpdate"] ?? DateTime.Now);
}
set
{
ViewState["LastUpdate"] = value;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (LastUpdate.AddSeconds(5.0) < DateTime.Now)
{
UpdatePanel1.Update();
LastUpdate = DateTime.Now;
}
}
protected void Page_Load(object sender, EventArgs e)
{
ScriptManager1.RegisterAsyncPostBackControl(Button1);
if (!IsPostBack)
{
LastUpdate = DateTime.Now;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>UpdatePanelUpdateMode Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1"
runat="server" />
<asp:Panel ID="Panel1"
GroupingText="UpdatePanel1"
runat="server">
<asp:UpdatePanel ID="UpdatePanel1"
UpdateMode="Conditional"
runat="server">
<ContentTemplate>
<p>
The content in this UpdatePanel only refreshes if five or more
seconds have passed since the last refresh and the button in
UpdatePanel2 was clicked. The time is checked
server-side and the UpdatePanel.Update() method is called. Last
updated: <strong>
<%= LastUpdate.ToString() %>
</strong>
</p>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<asp:Panel ID="Panel2"
GroupingText="UpdatePanel2"
runat="server">
<asp:UpdatePanel ID="UpdatePanel2"
runat="server">
<ContentTemplate>
<p>
This UpdatePanel always refreshes if the button is clicked.
Last updated: <strong>
<%= DateTime.Now.ToString() %>
</strong>
</p>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<asp:Button ID="Button1" Text="Button1" runat="server" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Property LastUpdate() As DateTime
Get
If ViewState("LastUpdate") IsNot Nothing Then
Return ViewState("LastUpdate")
Else : Return DateTime.Now()
End If
End Get
Set(ByVal Value As DateTime)
ViewState("LastUpdate") = Value
End Set
End Property
Protected Sub Button1_Click(ByVal Sender As Object, ByVal E As EventArgs)
If (LastUpdate.AddSeconds(5.0) < DateTime.Now) Then
UpdatePanel1.Update()
LastUpdate = DateTime.Now
End If
End Sub
Protected Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
ScriptManager1.RegisterAsyncPostBackControl(Button1)
If Not IsPostBack Then
LastUpdate = DateTime.Now
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>UpdatePanelUpdateMode Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1"
runat="server" />
<asp:Panel ID="Panel1"
GroupingText="UpdatePanel1"
runat="server">
<asp:UpdatePanel ID="UpdatePanel1"
runat="server"
UpdateMode="Conditional">
<ContentTemplate>
<p>
The content in this UpdatePanel only refreshes if five or more
seconds have passed since the last refresh and the button in
UpdatePanel2 was clicked. The time is checked
server-side and the UpdatePanel.Update() method is called. Last
updated: <strong>
<%= LastUpdate.ToString() %>
</strong>
</p>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<asp:Panel ID="Panel2"
GroupingText="UpdatePanel2"
runat="server">
<asp:UpdatePanel ID="UpdatePanel2"
runat="server">
<ContentTemplate>
<p>
This UpdatePanel always refreshes if the button is clicked.
Last updated: <strong>
<%= DateTime.Now.ToString() %>
</strong>
</p>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<asp:Button ID="Button1" Text="Button1" runat="server" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
Commenti
L'enumerazione UpdatePanelUpdateMode
UpdatePanel.UpdateMode viene usata dalla proprietà e definisce le possibili modalità di aggiornamento per il contenuto di un UpdatePanel controllo. Il UpdatePanel controllo richiede che la proprietà venga true
eseguita per il ScriptManager.EnablePartialRendering rendering parziale della pagina.
Il valore predefinito della UpdatePanel.UpdateMode proprietà è Always
.
Se il UpdatePanel controllo si trova all'interno di un altro UpdatePanel controllo e il pannello padre viene aggiornato, il pannello annidato verrà aggiornato anche indipendentemente dal valore della UpdateMode proprietà.
Il Conditional
valore aggiorna il contenuto del UpdatePanel controllo nelle condizioni seguenti:
Il UpdatePanel.Update metodo viene chiamato in modo esplicito.
Un controllo viene definito come trigger usando la UpdatePanel.Triggers proprietà e causa un postback. In questo scenario, il controllo è un trigger esplicito per l'aggiornamento del contenuto del pannello. Il controllo trigger può essere all'interno o all'esterno del UpdatePanel controllo che definisce il trigger.
La UpdatePanel.ChildrenAsTriggers proprietà è impostata su
true
e un controllo figlio del UpdatePanel controllo causa un postback. In questo scenario i controlli figlio del controllo sono trigger impliciti per l'aggiornamento UpdatePanel del pannello. I controlli figlio dei controlli annidati UpdatePanel non causano l'aggiornamento del controllo esterno UpdatePanel a meno che non siano definiti in modo esplicito come trigger.