UpdatePanel.UpdateMode UpdatePanel.UpdateMode UpdatePanel.UpdateMode UpdatePanel.UpdateMode Property

Определение

Возвращает или задает значение, указывающее, когда обновляется содержимое элемента управления UpdatePanel.Gets or sets a value that indicates when an UpdatePanel control's content is updated.

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

Значение свойства

Одно из значений перечисления UpdatePanelUpdateMode.One of the UpdatePanelUpdateMode values. Значение по умолчанию — Always.The default is Always.

Исключения

Указанный тип не является одним из значений UpdatePanelUpdateMode.The specified type is not one of the UpdatePanelUpdateMode values.

Примеры

В следующем примере объявляются два UpdatePanel элемента управления.The following example declares two UpdatePanel controls. На первой панели UpdateMode свойству Conditionalприсвоено значение.In the first panel, the UpdateMode property is set to Conditional. На второй панели UpdateMode параметр имеет Alwaysзначение.In the second panel, UpdateMode is set to Always. Кнопка за пределами обеих панелей регистрируется как элемент управления асинхронной обратной передачи путем ScriptManager вызова RegisterAsyncPostBackControl метода элемента управления.A button outside both panels is registered as an asynchronous postback control by calling the RegisterAsyncPostBackControl method of the ScriptManager control. В обработчике Click событий кнопки Update метод первой панели вызывается, если с момента последнего обновления прошло более пяти секунд.In the button's Click event handler, the 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 refresh was more than five seconds ago. Содержимое второй панели всегда обновляется.The content of the second panel 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 свойств и, а ChildrenAsTriggers также коллекцией триггеров. UpdatePanelWhen an UpdatePanel control is not inside another UpdatePanel control, the panel is updated as determined by the settings of the UpdateMode and ChildrenAsTriggers properties, together with the collection of triggers. Если элемент управления находится внутри другого UpdatePanel элемента управления, дочерняя панель автоматически обновляется при обновлении родительской панели. UpdatePanelWhen an UpdatePanel control is inside another UpdatePanel control, the child panel is automatically updated when the parent panel is updated.

Содержимое UpdatePanel элемента управления обновляется в следующих случаях:The content of an UpdatePanel control is updated in the following circumstances:

  • Если свойство имеет Alwaysзначение, UpdatePanel содержимое элемента управления обновляется при каждой обратной передаче, полученной из любого места на странице. UpdateModeIf the UpdateMode property is set to Always, the UpdatePanel control's content is updated on every postback that originates from anywhere on the page. Сюда входят асинхронные обратные передачи из элементов управления UpdatePanel в других элементах управления и обратные передачи из элементов UpdatePanel управления, которые не находятся внутри элементов управления.This includes asynchronous postbacks from controls inside other UpdatePanel controls and postbacks from controls that are not inside UpdatePanel controls.

  • Если элемент управления вложен в другой UpdatePanel элемент управления и обновляется родительская панель обновления. UpdatePanelIf the UpdatePanel control is nested inside another UpdatePanel control and the parent update panel is updated.

  • Если свойство имеет Conditionalзначение, и выполняется одно из следующих условий. UpdateModeIf the UpdateMode property is set to Conditional, and one of the following conditions occurs:

    • Update МетодUpdatePanel элемента управления вызывается явным образом.You call the Update method of the UpdatePanel control explicitly.

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

    • Свойство имеет значение, а дочерний элемент UpdatePanel управления элемента управления вызывает обратную передачу. true ChildrenAsTriggersThe ChildrenAsTriggers property is set to true and a child control of the UpdatePanel control causes a postback. Дочерний элемент управления вложенного UpdatePanel элемента управления не вызывает обновление внешнего UpdatePanel элемента управления, если он явно не определен как триггер.A child control of a nested UpdatePanel control does not cause an update to the outer UpdatePanel control unless it is explicitly defined as a trigger.

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

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