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í formát 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 nastavená UpdateMode na Conditional. Na druhém panelu UpdateMode je nastavená hodnota na Always. Tlačítko mimo oba panely se zaregistruje jako asynchronní ovládací prvek zpětného volání RegisterAsyncPostBackControl metody ScriptManager ovládacího prvku. V obslužné rutině Click události tlačítka se volá metoda prvního panelu, 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

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

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

  • UpdateMode Pokud je vlastnost nastavená na Always, UpdatePanel obsah ovládacího prvku se aktualizuje při každém zpětném odeslání, které pochází z libovolného místa na stránce. To zahrnuje asynchronní postbacky z ovládacích prvků v jiných UpdatePanel ovládacích prvcích a zpět 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ý panel aktualizací se aktualizuje.

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

    • Metodu Update ovládacího prvku UpdatePanel zavolá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 vně UpdatePanel ovládacího prvku, který definuje trigger.

    • Vlastnost ChildrenAsTriggers je nastavena na true a podřízený ovládací prvek UpdatePanel ovládacího prvku 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é