UpdatePanel.UpdateMode Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą, kiedy UpdatePanel zawartość kontrolki jest aktualizowana.

C#
public System.Web.UI.UpdatePanelUpdateMode UpdateMode { get; set; }

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.

ASP.NET (C#)

<%@ 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>

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.

Dotyczy

Produkt Wersje
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Zobacz też