Sdílet prostřednictvím


UpdatePanelUpdateMode Výčet

Definice

Představuje možné režimy aktualizace obsahu v ovládacím prvku UpdatePanel.

public enum class UpdatePanelUpdateMode
public enum UpdatePanelUpdateMode
type UpdatePanelUpdateMode = 
Public Enum UpdatePanelUpdateMode
Dědičnost
UpdatePanelUpdateMode

Pole

Name Hodnota Description
Always 0

UpdatePanel Obsah ovládacího prvku se aktualizuje pro všechny postbacky, které pocházejí ze stránky. To zahrnuje asynchronní postbacky.

Conditional 1

Určuje řadu podmínek, za kterých je obsah UpdatePanel ovládacího prvku aktualizován. Další informace najdete v části Poznámky.

Příklady

Následující příklad deklaruje dva UpdatePanel ovládací prvky. První panel nastaví UpdatePanel.UpdateMode vlastnost na Conditional. Druhý panel je UpdatePanel.UpdateMode ve výchozím nastavení nastavený na Always . Tlačítko mimo oba panely je registrováno jako asynchronní postback ovládací prvek pomocí ScriptManager.RegisterAsyncPostBackControl metody. V obslužné rutině události kliknutí na tlačítko je volána metoda prvního panelu, UpdatePanel.Update pokud uplynulo více než pět sekund od poslední aktualizace. V tomto scénáři se obsah panelu aktualizuje jenom v případě, že poslední aktualizace panelu byla 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 UpdatePanel ovládacího prvku. Ovládací UpdatePanel prvek vyžaduje, aby ScriptManager.EnablePartialRendering vlastnost byla true určena k částečnému vykreslová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 se aktualizuje, vnořený panel se také aktualizuje bez UpdateMode ohledu na hodnotu vlastnosti.

Hodnota Conditional aktualizuje obsah UpdatePanel ovládacího prvku za následujících podmínek:

  • Metoda UpdatePanel.Update je volána explicitně.

  • Ovládací prvek je definován jako trigger pomocí UpdatePanel.Triggers vlastnosti a způsobuje postback. V tomto scénáři je ovládací prvek explicitním triggerem pro aktualizaci obsahu panelu. Ovládací prvek aktivační události může být uvnitř nebo mimo UpdatePanel ovládací prvek, který definuje aktivační událost.

  • Vlastnost je nastavena UpdatePanel.ChildrenAsTriggerstrue a podřízený ovládací prvek ovládacího prvku UpdatePanel způsobí postback. V tomto scénáři jsou podřízené ovládací prvky UpdatePanel 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 triggery.

Platí pro

Viz také