UpdatePanel.UpdateMode Właściwość
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.
Pobiera lub ustawia wartość wskazującą, kiedy UpdatePanel zawartość kontrolki jest aktualizowana.
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
Wartość właściwości
UpdatePanelUpdateMode Jedna z wartości. Wartość domyślna to Always.
Wyjątki
Określony typ nie jest jedną z UpdatePanelUpdateMode wartości.
Przykłady
W poniższym przykładzie zadeklarowane są dwie UpdatePanel kontrolki. W pierwszym panelu właściwość jest ustawiona UpdateMode na Conditionalwartość . W drugim panelu UpdateMode jest ustawiona wartość Always. Przycisk na zewnątrz obu paneli jest zarejestrowany jako asynchroniczna kontrolka ogłaszania zwrotnego przez wywołanie RegisterAsyncPostBackControl metody kontrolki ScriptManager . W procedurze obsługi zdarzeń przycisku Click
metoda pierwszego panelu jest wywoływana, 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 ostatnie odświeżenie panelu trwało ponad 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
Jeśli kontrolka UpdatePanel nie znajduje się wewnątrz innej UpdatePanel kontrolki, panel zostanie zaktualizowany zgodnie z ustawieniami UpdateMode właściwości i ChildrenAsTriggers wraz z kolekcją wyzwalaczy. Gdy kontrolka UpdatePanel znajduje się wewnątrz innej UpdatePanel kontrolki, panel podrzędny jest automatycznie aktualizowany po zaktualizowaniu panelu nadrzędnego.
Zawartość kontrolki UpdatePanel jest aktualizowana w następujących okolicznościach:
UpdateMode Jeśli właściwość jest ustawiona na Alwayswartość , UpdatePanel zawartość kontrolki jest aktualizowana na każdym ogłaszaniu zwrotnym pochodzącym z dowolnego miejsca na stronie. Obejmuje to asynchroniczne ogłaszanie zwrotne z kontrolek wewnątrz innych UpdatePanel kontrolek i ogłaszanie zwrotne z kontrolek, które nie znajdują się wewnątrz UpdatePanel kontrolek.
Jeśli kontrolka UpdatePanel jest zagnieżdżona wewnątrz innej UpdatePanel kontrolki i zostanie zaktualizowany nadrzędny panel aktualizacji.
Jeśli właściwość jest ustawiona UpdateMode na Conditional, a wystąpi jeden z następujących warunków:
Metoda kontrolki jest wywoływana UpdateUpdatePanel jawnie.
Ogłaszanie zwrotne jest spowodowane przez kontrolkę zdefiniowaną jako wyzwalacz przy użyciu Triggers właściwości kontrolki UpdatePanel . W tym scenariuszu kontrolka jawnie wyzwala aktualizację zawartości panelu. Kontrolka może znajdować się wewnątrz lub na zewnątrz kontrolki UpdatePanel definiującej wyzwalacz.
Właściwość jest ustawiona ChildrenAsTriggers na
true
, a kontrolka podrzędna kontrolki UpdatePanel powoduje ogłaszanie zwrotne. Kontrolka podrzędna zagnieżdżonej UpdatePanel kontrolki nie powoduje aktualizacji zewnętrznej UpdatePanel kontrolki, chyba że jest jawnie zdefiniowana jako wyzwalacz.