UpdatePanelUpdateMode Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje možné režimy aktualizace obsahu v ovládacím UpdatePanel prvku.
public enum class UpdatePanelUpdateMode
public enum UpdatePanelUpdateMode
type UpdatePanelUpdateMode =
Public Enum UpdatePanelUpdateMode
- Dědičnost
Pole
Always | 0 | Obsah UpdatePanel ovládacího prvku se aktualizuje pro všechna zpětná vazba, která pocházejí ze stránky. To zahrnuje asynchronní postbacky. |
Conditional | 1 | Určuje řadu podmínek, za kterých se obsah UpdatePanel ovládacího prvku aktualizuje. Další informace najdete v části Poznámky. |
Příklady
Následující příklad deklaruje dva UpdatePanel ovládací prvky. První panel nastaví vlastnost na UpdatePanel.UpdateModeConditional
. Druhý panel je UpdatePanel.UpdateMode ve výchozím nastavení nastavený na Always
hodnotu . Tlačítko mimo oba panely je registrováno jako asynchronní zpětný ovládací prvek pomocí ScriptManager.RegisterAsyncPostBackControl metody . V obslužné rutině události kliknutí na tlačítko se volá metoda prvního panelu, UpdatePanel.Update pokud od poslední aktualizace uplynulo více než pět sekund. V tomto scénáři se obsah panelu aktualizuje pouze v případě, že poslední aktualizace panelu proběhla před více než pěti sekundami. Obsah druhého panelu se vždy aktualizuje.
<%@ 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>
Poznámky
Výčet UpdatePanelUpdateMode
je používán UpdatePanel.UpdateMode vlastností a definuje možné režimy aktualizace pro obsah ovládacího prvku UpdatePanel . Ovládací UpdatePanel prvek vyžaduje, aby ScriptManager.EnablePartialRendering vlastnost byla true
pro vykreslení částečné stránky.
Výchozí hodnota UpdatePanel.UpdateMode vlastnosti je Always
.
UpdatePanel Pokud je ovládací prvek uvnitř jiného UpdatePanel ovládacího prvku a nadřazený panel je aktualizován, bude aktualizován také vnořený panel bez UpdateMode ohledu na hodnotu vlastnosti.
Hodnota Conditional
aktualizuje obsah UpdatePanel ovládacího prvku za následujících podmínek:
Metoda je UpdatePanel.Update volána explicitně.
Ovládací prvek je definován jako aktivační událost pomocí UpdatePanel.Triggers vlastnosti a způsobuje zpětné odeslání. V tomto scénáři je ovládací prvek explicitním triggerem pro aktualizaci obsahu panelu. Ovládací prvek triggeru může být uvnitř nebo vně UpdatePanel ovládacího prvku, který aktivační událost definuje.
Vlastnost UpdatePanel.ChildrenAsTriggers je nastavena na
true
a podřízený ovládací prvek UpdatePanel ovládacího prvku způsobí zpětné odeslání. V tomto scénáři jsou podřízené UpdatePanel ovládací prvky ovládacího prvku implicitní triggery pro aktualizaci panelu. Podřízené ovládací prvky vnořených UpdatePanel ovládacích prvků nezpůsobí aktualizaci vnějšího UpdatePanel ovládacího prvku, pokud nejsou explicitně definovány jako aktivační události.