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 элемента управления, если они не определены явным образом как триггеры.