Sdílet prostřednictvím


UpdatePanel.UpdateMode Vlastnost

Definice

Získá nebo nastaví hodnotu, která označuje, kdy UpdatePanel je obsah ovládacího prvku aktualizován.

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

Hodnota vlastnosti

Jedna z UpdatePanelUpdateMode hodnot. Výchozí hodnota je Always.

Výjimky

Zadaný typ není jednou z UpdatePanelUpdateMode hodnot.

Příklady

Následující příklad deklaruje dva UpdatePanel ovládací prvky. Na prvním panelu je vlastnost nastavena UpdateMode na Conditionalhodnotu . Na druhém panelu UpdateMode je nastavena hodnota Always. Tlačítko mimo oba panely je registrováno jako asynchronní postback řízení voláním RegisterAsyncPostBackControl metody ScriptManager ovládacího prvku. V obslužné rutině události tlačítka Click se volá metoda prvního panelu, 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

UpdatePanel Pokud ovládací prvek není uvnitř jiného UpdatePanel ovládacího prvku, panel se aktualizuje podle nastavení UpdateMode a ChildrenAsTriggers vlastností společně s kolekcí aktivačních událostí. UpdatePanel Když je ovládací prvek uvnitř jiného UpdatePanel ovládacího prvku, po aktualizaci nadřazeného panelu se podřízený panel automaticky aktualizuje.

UpdatePanel Obsah ovládacího prvku se aktualizuje za následujících okolností:

  • UpdateMode Pokud je vlastnost nastavena na Always, UpdatePanel obsah ovládacího prvku se aktualizuje na každém postbacku, který pochází z libovolného místa na stránce. To zahrnuje asynchronní postbacky z ovládacích prvků uvnitř jiných UpdatePanel ovládacích prvků a postbacky z ovládacích prvků, které nejsou uvnitř UpdatePanel ovládacích prvků.

  • UpdatePanel Pokud je ovládací prvek vnořený do jiného UpdatePanel ovládacího prvku a nadřazený aktualizační panel se aktualizuje.

  • UpdateMode Pokud je vlastnost nastavena na Conditionala nastane jedna z následujících podmínek:

    • Metodu UpdateUpdatePanel ovládacího prvku voláte explicitně.

    • Postback je způsoben ovládacím prvku definovaným jako trigger pomocí Triggers vlastnosti UpdatePanel ovládacího prvku. V tomto scénáři ovládací prvek explicitně aktivuje aktualizaci obsahu panelu. Ovládací prvek může být uvnitř nebo mimo UpdatePanel ovládací prvek, který definuje aktivační událost.

    • Vlastnost je nastavena ChildrenAsTriggerstrue a podřízený ovládací prvek ovládacího prvku UpdatePanel způsobí postback. Podřízený ovládací prvek vnořeného UpdatePanel ovládacího prvku nezpůsobí aktualizaci vnějšího UpdatePanel ovládacího prvku, pokud není explicitně definován jako trigger.

Platí pro

Viz také