UpdatePanelUpdateMode Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa os possíveis modos de atualização para o conteúdo num UpdatePanel controlo.
public enum class UpdatePanelUpdateMode
public enum UpdatePanelUpdateMode
type UpdatePanelUpdateMode =
Public Enum UpdatePanelUpdateMode
- Herança
Campos
| Name | Valor | Description |
|---|---|---|
| Always | 0 | O conteúdo do UpdatePanel controlo é atualizado para todas as postbacks que têm origem na página. Isto inclui postbacks assíncronos. |
| Conditional | 1 | Especifica um conjunto de condições sob as quais o conteúdo do UpdatePanel controlo é atualizado; consulte a secção de Observações para mais informações. |
Exemplos
O exemplo seguinte declara dois UpdatePanel controlos. O primeiro painel define a UpdatePanel.UpdateMode propriedade para Conditional. O segundo painel está UpdatePanel.UpdateMode definido como Always por defeito. Um botão fora de ambos os painéis é registado como um controlo de recuo assíncrono usando este ScriptManager.RegisterAsyncPostBackControl método. No handler de eventos de clique do botão, o UpdatePanel.Update método do primeiro painel é chamado se tiverem decorrido mais de cinco segundos desde a última atualização. Neste cenário, o conteúdo do painel só é atualizado se a última atualização do painel ocorreu há mais de cinco segundos. O conteúdo do segundo painel é sempre atualizado.
<%@ 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>
Observações
A UpdatePanelUpdateMode enumeração é usada pela UpdatePanel.UpdateMode propriedade e define os modos possíveis de atualização para o conteúdo de um UpdatePanel controlo. O UpdatePanel controlo exige que a ScriptManager.EnablePartialRendering propriedade seja true para que ocorra a renderização parcial da página.
O valor padrão da UpdatePanel.UpdateMode propriedade é Always.
Se o UpdatePanel controlo estiver dentro de outro UpdatePanel controlo e o painel principal for atualizado, o painel aninhado também será atualizado independentemente do valor da UpdateMode propriedade.
O Conditional valor atualiza o conteúdo do UpdatePanel controlo sob as seguintes condições:
O UpdatePanel.Update método é chamado explicitamente.
Um controlo é definido como um gatilho ao usar a UpdatePanel.Triggers propriedade e causa um postback. Neste cenário, o controlo é um gatilho explícito para atualizar o conteúdo do painel. O controlo do gatilho pode estar dentro ou fora do UpdatePanel controlo que define o gatilho.
A UpdatePanel.ChildrenAsTriggers propriedade é definida para
truee um controlo filho do UpdatePanel controlo causa um postback. Neste cenário, os controlos filhos do UpdatePanel controlo são gatilhos implícitos para a atualização do painel. Os controlos filhos dos controlos aninhados UpdatePanel não fazem com que o controlo externo UpdatePanel seja atualizado, a menos que estejam explicitamente definidos como gatilhos.