UpdatePanel.UpdateMode Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que indica quando o conteúdo do controle de um UpdatePanel é atualizado.
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
Valor da propriedade
Um dos valores de UpdatePanelUpdateMode. O padrão é Always.
Exceções
O tipo especificado não é um dos valores UpdatePanelUpdateMode.
Exemplos
O exemplo a seguir declara dois UpdatePanel controles. No primeiro painel, a UpdateMode propriedade é definida como Conditional. No segundo painel, UpdateMode é definido como Always. Um botão fora de ambos os painéis é registrado como um controle de postback assíncrono chamando o RegisterAsyncPostBackControl método do ScriptManager controle . No manipulador de eventos do Click
botão, o Update método do primeiro painel será chamado se mais de cinco segundos tiverem decorrido desde sua última atualização. Nesse cenário, o conteúdo do painel será atualizado somente se a última atualização do painel tiver sido 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>
Comentários
Quando um UpdatePanel controle não está dentro de outro UpdatePanel controle, o painel é atualizado conforme determinado pelas configurações das UpdateMode propriedades e ChildrenAsTriggers , juntamente com a coleção de gatilhos. Quando um UpdatePanel controle está dentro de outro UpdatePanel controle, o painel filho é atualizado automaticamente quando o painel pai é atualizado.
O conteúdo de um UpdatePanel controle é atualizado nas seguintes circunstâncias:
Se a UpdateMode propriedade estiver definida Alwayscomo , o UpdatePanel conteúdo do controle será atualizado em todos os postbacks originados de qualquer lugar na página. Isso inclui postbacks assíncronos de controles dentro de outros UpdatePanel controles e postbacks de controles que não estão dentro UpdatePanel de controles.
Se o UpdatePanel controle estiver aninhado dentro de outro UpdatePanel controle e o painel de atualização pai for atualizado.
Se a UpdateMode propriedade estiver definida Conditionalcomo e uma das seguintes condições ocorrer:
Você chama o Update método do UpdatePanel controle explicitamente.
O postback é causado por um controle definido como um gatilho usando a Triggers propriedade do UpdatePanel controle . Nesse cenário, o controle dispara explicitamente uma atualização do conteúdo do painel. O controle pode estar dentro ou fora do UpdatePanel controle que define o gatilho.
A ChildrenAsTriggers propriedade é definida
true
como e um controle filho do UpdatePanel controle causa um postback. Um controle filho de um controle aninhado UpdatePanel não causa uma atualização para o controle externo UpdatePanel , a menos que seja definido explicitamente como um gatilho.