UpdatePanelUpdateMode Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje możliwe tryby aktualizacji dla zawartości w kontrolce UpdatePanel .
public enum class UpdatePanelUpdateMode
public enum UpdatePanelUpdateMode
type UpdatePanelUpdateMode =
Public Enum UpdatePanelUpdateMode
- Dziedziczenie
Pola
Always | 0 | Zawartość kontrolki UpdatePanel jest aktualizowana dla wszystkich ogłaszań zwrotnych pochodzących ze strony. Obejmuje to asynchroniczne ogłaszanie zwrotne. |
Conditional | 1 | Określa liczbę warunków, w których zawartość kontrolki UpdatePanel jest aktualizowana; zobacz sekcję Uwagi, aby uzyskać więcej informacji. |
Przykłady
W poniższym przykładzie zadeklarowane są dwie UpdatePanel kontrolki. Pierwszy panel ustawia UpdatePanel.UpdateMode właściwość na Conditional
. Drugi panel ma UpdatePanel.UpdateMode domyślnie ustawioną Always
wartość . Przycisk na zewnątrz obu paneli jest zarejestrowany jako asynchroniczna kontrolka ogłaszania zwrotnego ScriptManager.RegisterAsyncPostBackControl przy użyciu metody . W procedurze obsługi zdarzeń kliknięcia przycisku metoda pierwszego panelu jest wywoływana, UpdatePanel.Update jeśli od czasu ostatniej aktualizacji upłynęło więcej niż pięć sekund. W tym scenariuszu zawartość panelu jest aktualizowana tylko wtedy, gdy ostatnia aktualizacja panelu była większa niż pięć sekund temu. Zawartość drugiego panelu jest zawsze aktualizowana.
<%@ 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>
Uwagi
Wyliczenie UpdatePanelUpdateMode
jest używane przez UpdatePanel.UpdateMode właściwość i definiuje możliwe tryby aktualizacji zawartości kontrolki UpdatePanel . Kontrolka UpdatePanel wymaga, ScriptManager.EnablePartialRendering aby właściwość dotyczyła true
renderowania częściowej strony.
Wartość domyślna UpdatePanel.UpdateMode właściwości to Always
.
Jeśli kontrolka UpdatePanel znajduje się wewnątrz innej UpdatePanel kontrolki i zostanie zaktualizowany panel nadrzędny, zagnieżdżony panel zostanie również zaktualizowany niezależnie od UpdateMode wartości właściwości.
Wartość Conditional
aktualizuje zawartość kontrolki UpdatePanel w następujących warunkach:
Metoda jest wywoływana UpdatePanel.Update jawnie.
Kontrolka jest definiowana jako wyzwalacz przy użyciu UpdatePanel.Triggers właściwości i powoduje ogłaszanie zwrotne. W tym scenariuszu kontrolka jest jawnym wyzwalaczem aktualizowania zawartości panelu. Kontrolka wyzwalacza może znajdować się wewnątrz lub poza kontrolką UpdatePanel definiującą wyzwalacz.
Właściwość jest ustawiona UpdatePanel.ChildrenAsTriggers na
true
, a kontrolka podrzędna kontrolki UpdatePanel powoduje ogłaszanie zwrotne. W tym scenariuszu UpdatePanel kontrolki podrzędne są niejawnymi wyzwalaczami aktualizowania panelu. Kontrolki podrzędne zagnieżdżonych UpdatePanel kontrolek nie powodują zaktualizowania zewnętrznej UpdatePanel kontrolki, chyba że są jawnie zdefiniowane jako wyzwalacze.