Partager via


UpdatePanelUpdateMode Énumération

Définition

Représente les modes de mise à jour possibles pour le contenu dans un contrôle UpdatePanel.

public enum class UpdatePanelUpdateMode
public enum UpdatePanelUpdateMode
type UpdatePanelUpdateMode = 
Public Enum UpdatePanelUpdateMode
Héritage
UpdatePanelUpdateMode

Champs

Always 0

Le contenu du contrôle UpdatePanel est mis à jour pour toutes les publications qui proviennent de la page. Cela inclut les publications asynchrones.

Conditional 1

Spécifie un nombre de conditions sous lesquelles le contenu du contrôle UpdatePanel est mis à jour ; consultez la section Remarques pour plus d'informations.

Exemples

L’exemple suivant déclare deux UpdatePanel contrôles. Le premier panneau définit la UpdatePanel.UpdateMode propriété sur Conditional. Le deuxième panneau a UpdatePanel.UpdateMode la valeur Always par défaut. Un bouton en dehors des deux panneaux est inscrit en tant que contrôle de publication asynchrone à l’aide de la ScriptManager.RegisterAsyncPostBackControl méthode. Dans le gestionnaire d’événements click du bouton, la UpdatePanel.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 mise à jour du panneau a été il y a 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

L’énumération UpdatePanelUpdateMode est utilisée par la UpdatePanel.UpdateMode propriété et définit les modes de mise à jour possibles pour le contenu d’un UpdatePanel contrôle. Le UpdatePanel contrôle nécessite que la ScriptManager.EnablePartialRendering propriété soit true destinée au rendu de page partielle.

La valeur par défaut de la UpdatePanel.UpdateMode propriété est Always.

Si le UpdatePanel contrôle se trouve à l’intérieur d’un autre UpdatePanel contrôle et que le panneau parent est mis à jour, le panneau imbriqué est également mis à jour indépendamment de la UpdateMode valeur de la propriété.

La Conditional valeur met à jour le contenu du UpdatePanel contrôle dans les conditions suivantes :

  • La UpdatePanel.Update méthode est appelée explicitement.

  • Un contrôle est défini comme un déclencheur à l’aide de la UpdatePanel.Triggers propriété et provoque une publication. Dans ce scénario, le contrôle est un déclencheur explicite pour mettre à jour le contenu du panneau. Le contrôle de déclencheur peut être à l’intérieur ou à l’extérieur du UpdatePanel contrôle qui définit le déclencheur.

  • La UpdatePanel.ChildrenAsTriggers propriété est définie true sur et un contrôle enfant du UpdatePanel contrôle provoque une publication. Dans ce scénario, les contrôles enfants du UpdatePanel contrôle sont des déclencheurs implicites pour mettre à jour le panneau. Les contrôles enfants des contrôles imbriqués UpdatePanel n’entraînent pas la mise à jour du contrôle externe UpdatePanel , sauf s’ils sont définis explicitement comme déclencheurs.

S’applique à

Voir aussi