Partager via


UpdatePanel.UpdateMode Propriété

Définition

Obtient ou définit une valeur qui indique quand un contenu de contrôle UpdatePanel est mis à jour.

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

Valeur de propriété

Une des valeurs de l'objet UpdatePanelUpdateMode. La valeur par défaut est Always.

Exceptions

Le type spécifié n'est pas l'une des valeurs UpdatePanelUpdateMode.

Exemples

L’exemple suivant déclare deux UpdatePanel contrôles. Dans le premier panneau, la UpdateMode propriété est définie sur Conditional. Dans le deuxième panneau, UpdateMode est défini sur Always. Un bouton en dehors des deux panneaux est inscrit en tant que contrôle de publication asynchrone en appelant la RegisterAsyncPostBackControl méthode du ScriptManager contrôle. Dans le gestionnaire d’événements du Click bouton, la Update méthode du premier panneau est appelée si plus de cinq secondes se sont écoulées depuis sa dernière mise à jour. Dans ce scénario, le contenu du panneau est mis à jour uniquement si la dernière actualisation du panneau remonte à plus de cinq secondes. Le contenu du deuxième panneau est toujours mis à jour.


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

Remarques

Lorsqu’un UpdatePanel contrôle n’est pas à l’intérieur d’un autre UpdatePanel contrôle, le panneau est mis à jour comme déterminé par les paramètres des UpdateMode propriétés et ChildrenAsTriggers , ainsi que par la collection de déclencheurs. Lorsqu’un UpdatePanel contrôle se trouve à l’intérieur d’un autre UpdatePanel contrôle, le panneau enfant est automatiquement mis à jour lorsque le panneau parent est mis à jour.

Le contenu d’un UpdatePanel contrôle est mis à jour dans les circonstances suivantes :

  • Si la UpdateMode propriété a la valeur Always, le UpdatePanel contenu du contrôle est mis à jour sur chaque publication qui provient de n’importe où sur la page. Cela inclut les publications asynchrones à partir de contrôles à l’intérieur d’autres UpdatePanel contrôles et les publications de contrôles qui ne sont pas à l’intérieur UpdatePanel des contrôles.

  • Si le UpdatePanel contrôle est imbriqué à l’intérieur d’un autre UpdatePanel contrôle et que le panneau de mise à jour parent est mis à jour.

  • Si la UpdateMode propriété a la Conditionalvaleur , et que l’une des conditions suivantes se produit :

    • Vous appelez explicitement la Update méthode du UpdatePanel contrôle.

    • La publication est provoquée par un contrôle défini comme déclencheur à l’aide de la Triggers propriété du UpdatePanel contrôle. Dans ce scénario, le contrôle déclenche explicitement une mise à jour du contenu du panneau. Le contrôle peut se trouver à l’intérieur ou à l’extérieur du UpdatePanel contrôle qui définit le déclencheur.

    • La ChildrenAsTriggers propriété est définie sur true et un contrôle enfant du UpdatePanel contrôle provoque une publication. Un contrôle enfant d’un contrôle imbriqué UpdatePanel n’entraîne pas de mise à jour du contrôle externe UpdatePanel , sauf s’il est explicitement défini en tant que déclencheur.

S’applique à

Voir aussi