UpdatePanelUpdateMode Enum
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar möjliga uppdateringslägen för innehållet i en UpdatePanel kontroll.
public enum class UpdatePanelUpdateMode
public enum UpdatePanelUpdateMode
type UpdatePanelUpdateMode =
Public Enum UpdatePanelUpdateMode
- Arv
Fält
| Name | Värde | Description |
|---|---|---|
| Always | 0 | Innehållet i UpdatePanel kontrollen uppdateras för alla postbacks som kommer från sidan. Detta inkluderar asynkrona postbacks. |
| Conditional | 1 | Anger ett antal villkor under vilka innehållet i UpdatePanel kontrollen uppdateras. Mer information finns i avsnittet Kommentarer. |
Exempel
I följande exempel deklareras två UpdatePanel kontroller. Den första panelen anger egenskapen UpdatePanel.UpdateMode till Conditional. Den andra panelen har UpdatePanel.UpdateMode angetts till Always som standard. En knapp utanför båda panelerna registreras som en asynkron postback-kontroll med hjälp ScriptManager.RegisterAsyncPostBackControl av metoden . I knappens klickhändelsehanterare UpdatePanel.Update anropas metoden för den första panelen om mer än fem sekunder har förflutit sedan den senaste uppdateringen. I det här scenariot uppdateras panelens innehåll endast om den senaste paneluppdateringen var för mer än fem sekunder sedan. Den andra panelens innehåll uppdateras alltid.
<%@ 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>
Kommentarer
Uppräkningen UpdatePanelUpdateMode används av UpdatePanel.UpdateMode egenskapen och definierar möjliga uppdateringslägen för innehållet i en UpdatePanel kontroll. Kontrollen UpdatePanel kräver att egenskapen ScriptManager.EnablePartialRendering är true för att delvis sidåtergivning ska ske.
Standardvärdet för UpdatePanel.UpdateMode egenskapen är Always.
Om kontrollen UpdatePanel finns i en annan UpdatePanel kontroll och den överordnade panelen uppdateras uppdateras även den kapslade panelen oavsett egenskapsvärdet UpdateMode .
Värdet Conditional uppdaterar kontrollens UpdatePanel innehåll under följande villkor:
Metoden UpdatePanel.Update anropas explicit.
En kontroll definieras som en utlösare med hjälp UpdatePanel.Triggers av egenskapen och orsakar ett återanrop. I det här scenariot är kontrollen en explicit utlösare för att uppdatera panelinnehållet. Utlösarkontrollen kan vara antingen inuti eller utanför den UpdatePanel kontroll som definierar utlösaren.
Egenskapen UpdatePanel.ChildrenAsTriggers är inställd på
trueoch en underordnad UpdatePanel kontroll av kontrollen orsakar ett återanrop. I det här scenariot är underordnade kontroller av UpdatePanel kontrollen implicita utlösare för att uppdatera panelen. Underordnade kontroller av kapslade UpdatePanel kontroller gör inte att den yttre UpdatePanel kontrollen uppdateras om de inte uttryckligen definieras som utlösare.