UpdatePanel.UpdateMode Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает значение, указывающее, когда обновляется содержимое элемента управления UpdatePanel.
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. Значение по умолчанию — Always.
Исключения
Указанный тип не является одним из значений UpdatePanelUpdateMode.
Примеры
В следующем примере объявляется два UpdatePanel элемента управления. На первой панели UpdateMode свойство имеет значение Conditional. На второй панели UpdateMode задано значение Always. Кнопка за пределами обеих панелей регистрируется как асинхронный элемент управления обратной ScriptManager передачи путем вызова RegisterAsyncPostBackControl метода элемента управления. В обработчике событий кнопки Click
метод первой панели вызывается, Update если с момента последнего обновления прошло более пяти секунд. В этом сценарии содержимое панели обновляется только в том случае, если последнее обновление панели было более пяти секунд назад. Содержимое второй панели всегда обновляется.
<%@ 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>
Комментарии
UpdatePanel Если элемент управления не находится внутри другого UpdatePanel UpdateMode элемента управления, панель обновляется в соответствии с параметрами и ChildrenAsTriggers свойствами вместе с коллекцией триггеров. UpdatePanel Когда элемент управления находится внутри другого UpdatePanel элемента управления, дочерняя панель автоматически обновляется при обновлении родительской панели.
Содержимое UpdatePanel элемента управления обновляется в следующих случаях:
UpdateMode Если для свойства задано значениеAlways, UpdatePanel содержимое элемента управления обновляется при каждой обратной отправке, полученной из любого места на странице. Сюда входят асинхронные обратные передачи из элементов управления внутри других UpdatePanel элементов управления и обратные передачи из элементов управления, которые не находятся внутри UpdatePanel элементов управления.
Если элемент UpdatePanel управления вложен в другой UpdatePanel элемент управления, а родительская панель обновления обновляется.
UpdateMode Если свойству присвоено значениеConditional, и возникает одно из следующих условий:
Метод элемента управления вызывается Update UpdatePanel явным образом.
Обратная связь вызвана элементом управления, определенным как триггер, с помощью Triggers свойства UpdatePanel элемента управления. В этом сценарии элемент управления явно активирует обновление содержимого панели. Элемент управления может находиться внутри или за пределами UpdatePanel элемента управления, который определяет триггер.
Свойство ChildrenAsTriggers задается
true
и дочерний элемент управления элемента UpdatePanel управления вызывает обратную передачу. Дочерний элемент управления вложенного UpdatePanel элемента управления не приводит к обновлению внешнего UpdatePanel элемента управления, если он явно не определен как триггер.