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