Sdílet prostřednictvím


UpdatePanelUpdateMode Výčet

Definice

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
UpdatePanelUpdateMode

Pole

Name Hodnota Description
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.

Platí pro

Viz také