UpdatePanelUpdateMode UpdatePanelUpdateMode UpdatePanelUpdateMode UpdatePanelUpdateMode Enum

Определение

Представляет возможные режимы обновления для содержимого элемента управления UpdatePanel.Represents the possible update modes for the content in an UpdatePanel control.

public enum class UpdatePanelUpdateMode
public enum UpdatePanelUpdateMode
type UpdatePanelUpdateMode = 
Public Enum UpdatePanelUpdateMode
Наследование
UpdatePanelUpdateModeUpdatePanelUpdateModeUpdatePanelUpdateModeUpdatePanelUpdateMode

Поля

Always Always Always Always 0

Содержимое элемента управления UpdatePanel обновляется для всех обратных передач, идущих от страницы.The content of the UpdatePanel control is updated for all postbacks that originate from the page. Сюда входят и асинхронные обратные передачи.This includes asynchronous postbacks.

Conditional Conditional Conditional Conditional 1

Указывает количество условий, при которых содержимое элемента управления UpdatePanel обновляется. Дополнительные сведения см. в разделе примечаний.Specifies a number of conditions under which the content of the UpdatePanel control is updated; see the Remarks section for more information.

Примеры

В следующем примере объявляются два UpdatePanel элемента управления.The following example declares two UpdatePanel controls. На первой панели UpdatePanel.UpdateMode Conditionalсвойству присваивается значение.The first panel sets the UpdatePanel.UpdateMode property to Conditional. Вторая панель по умолчанию UpdatePanel.UpdateMode имеет Always значение.The second panel has UpdatePanel.UpdateMode set to Always by default. Кнопка за пределами обеих панелей регистрируется как элемент управления асинхронной обратной передачи с помощью ScriptManager.RegisterAsyncPostBackControl метода.A button outside both panels is registered as an asynchronous postback control by using the ScriptManager.RegisterAsyncPostBackControl method. В обработчике событий нажатия кнопки UpdatePanel.Update метод первой панели вызывается, если с момента последнего обновления прошло более пяти секунд.In the button's click event handler, the UpdatePanel.Update method of the first panel is called if more than five seconds have elapsed since its last update. В этом сценарии содержимое панели обновляется только в том случае, если Последнее обновление панели было более пяти секунд назад.In this scenario, the panel's content is updated only if the last panel update was more than five seconds ago. Содержимое второй панели всегда обновляется.The second panel's content is always updated.


<%@ 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 Not ViewState("LastUpdate") Is 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>

Комментарии

Перечисление используется UpdatePanel.UpdateMode свойством и определяет возможные режимы обновления UpdatePanel для содержимого элемента управления. UpdatePanelUpdateModeThe UpdatePanelUpdateMode enumeration is used by the UpdatePanel.UpdateMode property and defines the possible update modes for the content of an UpdatePanel control. Элемент управления требует, чтобы ScriptManager.EnablePartialRendering свойство было true для выполнения частичной отрисовки страницы. UpdatePanelThe UpdatePanel control requires that the ScriptManager.EnablePartialRendering property be true for partial-page rendering to occur.

Значение UpdatePanel.UpdateMode свойства по умолчанию — Always.The default value of the UpdatePanel.UpdateMode property is Always.

Если элемент управления находится внутри другого UpdatePanel элемента управления и обновляется родительская панель, то вложенная панель также будет UpdateMode обновлена независимо от значения свойства. UpdatePanelIf the UpdatePanel control is inside another UpdatePanel control and the parent panel is updated, the nested panel will also be updated regardless of the UpdateMode property value.

Значение обновляет содержимое UpdatePanel элемента управления при выполнении следующих условий. ConditionalThe Conditional value updates the content of the UpdatePanel control under the following conditions:

  • UpdatePanel.Update Метод вызывается явным образом.The UpdatePanel.Update method is called explicitly.

  • Элемент управления определяется как триггер с помощью UpdatePanel.Triggers свойства и вызывает обратную передачу.A control is defined as a trigger by using the UpdatePanel.Triggers property and causes a postback. В этом сценарии элемент управления является явным триггером для обновления содержимого панели.In this scenario, the control is an explicit trigger for updating the panel content. Элемент управления триггером может находиться либо внутри, либо UpdatePanel вне элемента управления, определяющего триггер.The trigger control can be either inside or outside the UpdatePanel control that defines the trigger.

  • Свойство имеет значение, а дочерний элемент UpdatePanel управления элемента управления вызывает обратную передачу. true UpdatePanel.ChildrenAsTriggersThe UpdatePanel.ChildrenAsTriggers property is set to true and a child control of the UpdatePanel control causes a postback. В этом сценарии дочерние элементы UpdatePanel управления являются неявными триггерами для обновления панели.In this scenario, child controls of the UpdatePanel control are implicit triggers for updating the panel. Дочерние элементы UpdatePanel управления вложенных элементов управления не UpdatePanel вызывают обновления внешнего элемента управления, если они явно не определены как триггеры.Child controls of nested UpdatePanel controls do not cause the outer UpdatePanel control to be updated unless they are explicitly defined as triggers.

Применяется к

Дополнительно