UpdatePanel.UpdateMode Egenskap
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.
Hämtar eller anger ett värde som anger när en UpdatePanel kontrolls innehåll uppdateras.
public:
property System::Web::UI::UpdatePanelUpdateMode UpdateMode { System::Web::UI::UpdatePanelUpdateMode get(); void set(System::Web::UI::UpdatePanelUpdateMode value); };
public System.Web.UI.UpdatePanelUpdateMode UpdateMode { get; set; }
member this.UpdateMode : System.Web.UI.UpdatePanelUpdateMode with get, set
Public Property UpdateMode As UpdatePanelUpdateMode
Egenskapsvärde
Ett av UpdatePanelUpdateMode värdena. Standardvärdet är Always.
Undantag
Den angivna typen är inte ett av UpdatePanelUpdateMode värdena.
Exempel
I följande exempel deklareras två UpdatePanel kontroller. I den första panelen är egenskapen UpdateMode inställd på Conditional. I den andra panelen UpdateMode är inställt på Always. En knapp utanför båda panelerna registreras som en asynkron postback-kontroll genom att anropa RegisterAsyncPostBackControl kontrollens ScriptManager metod. I knappens händelsehanterare Click anropas Update 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. Innehållet i den andra panelen 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
När en UpdatePanel kontroll inte finns i en annan UpdatePanel kontroll uppdateras panelen enligt inställningarna UpdateMode för egenskaperna och ChildrenAsTriggers tillsammans med samlingen av utlösare. När en kontroll finns i en UpdatePanel annan UpdatePanel kontroll uppdateras den underordnade panelen automatiskt när den överordnade panelen uppdateras.
Innehållet i en UpdatePanel kontroll uppdateras under följande omständigheter:
Om egenskapen UpdateMode är inställd AlwaysUpdatePanel på uppdateras kontrollens innehåll på varje postback som kommer från var som helst på sidan. Detta omfattar asynkrona postbacks från kontroller i andra UpdatePanel kontroller och återtaganden från kontroller som inte finns i UpdatePanel kontroller.
Om kontrollen UpdatePanel är kapslad i en annan UpdatePanel kontroll och den överordnade uppdateringspanelen uppdateras.
Om egenskapen är inställd på UpdateModeConditional, och något av följande villkor inträffar:
Du anropar Update metoden för UpdatePanel kontrollen explicit.
Återanropet orsakas av en kontroll som definieras som en utlösare med hjälp Triggers av kontrollens UpdatePanel egenskap. I det här scenariot utlöser kontrollen uttryckligen en uppdatering av panelinnehållet. Kontrollen kan vara antingen inuti eller utanför den UpdatePanel kontroll som definierar utlösaren.
Egenskapen ChildrenAsTriggers är inställd på
trueoch en underordnad UpdatePanel kontroll av kontrollen orsakar ett återanrop. En underordnad kontroll av en kapslad UpdatePanel kontroll orsakar inte en uppdatering av den yttre UpdatePanel kontrollen om den inte uttryckligen definieras som en utlösare.