PostBackTrigger Classe
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.
Define um controle em um controle UpdatePanel como um controle de postback.
public ref class PostBackTrigger : System::Web::UI::UpdatePanelControlTrigger
public class PostBackTrigger : System.Web.UI.UpdatePanelControlTrigger
type PostBackTrigger = class
inherit UpdatePanelControlTrigger
Public Class PostBackTrigger
Inherits UpdatePanelControlTrigger
- Herança
Exemplos
O exemplo a seguir mostra como definir declarativamente um PostBackTrigger controle para um UpdatePanel controle. No painel, um FileUpload controle permite que os usuários carreguem um arquivo. Os usuários devem primeiro verificar se o arquivo a ser carregado existe. O Button controle que chama o manipulador de eventos para verificar se o nome do arquivo causa um postback assíncrono. No entanto, o Button controle que carrega o arquivo é registrado como um PostBackTrigger, porque os arquivos não podem ser carregados de forma assíncrona.
<%@ 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">
private string saveDir = @"Uploads\";
protected void UploadButton_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile && FileUpload1.FileBytes.Length < 10000 &&
!CheckForFileName())
{
string savePath = Request.PhysicalApplicationPath + saveDir +
Server.HtmlEncode(FileName.Text);
//Remove comment from the next line to upload file.
//FileUpload1.SaveAs(savePath);
UploadStatusLabel.Text = "The file was processed successfully.";
}
else
{
UploadStatusLabel.Text = "You did not specify a file to upload, or a file name, or the file was too large. Please try again.";
}
}
protected void CheckButton_Click(object sender, EventArgs e)
{
if (FileName.Text.Length > 0)
{
string s = CheckForFileName() ? "exists already." : "does not exist.";
UploadStatusLabel.Text = "The file name choosen " + s;
}
else
{
UploadStatusLabel.Text = "Specify a file name to check.";
}
}
private Boolean CheckForFileName()
{
System.IO.FileInfo fi = new System.IO.FileInfo(Request.PhysicalApplicationPath +
saveDir + Server.HtmlEncode(FileName.Text));
return fi.Exists;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>PostBackTrigger Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
The upload button is defined as a PostBackTrigger.<br/>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<fieldset>
<legend>FileUpload in an UpdatePanel</legend>
First, enter a file name to upload your file to:
<asp:TextBox ID="FileName" runat="server" />
<asp:Button ID="CheckButton" Text="Check" runat="server" OnClick="CheckButton_Click" />
<br />
Then, browse and find the file to upload:
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br />
<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>
<br />
<asp:Label id="UploadStatusLabel"
runat="server" style="color:red;">
</asp:Label>
</fieldset>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="UploadButton" />
</Triggers>
</asp:UpdatePanel>
</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">
Private saveDir As String = "Uploads\\"
Protected Sub UploadButton_Click(ByVal sender As Object, ByVal e As EventArgs)
If (FileUpload1.HasFile AndAlso FileUpload1.FileBytes.Length < 10000 AndAlso _
Not (CheckForFileName())) Then
Dim savePath As String = Request.PhysicalApplicationPath & saveDir & _
Server.HtmlEncode(FileName.Text)
'Remove comment from the next line to upload file.
'FileUpload1.SaveAs(savePath)
UploadStatusLabel.Text = "The file was processed successfully."
Else
UploadStatusLabel.Text = "You did not specify a file to upload, or a file name, or the file was too large. Please try again."
End If
End Sub
Protected Sub CheckButton_Click(ByVal sender As Object, ByVal e As EventArgs)
If (FileName.Text.Length > 0) Then
Dim s As String
If (CheckForFileName()) Then
s = "exists already."
Else
s = "does not exist."
End If
UploadStatusLabel.Text = "The file name choosen " & s
Else
UploadStatusLabel.Text = "Specify a file name to check."
End If
End Sub
Private Function CheckForFileName() As Boolean
Dim fi As New System.IO.FileInfo(Request.PhysicalApplicationPath & _
saveDir & Server.HtmlEncode(FileName.Text))
Return fi.Exists
End Function
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>PostBackTrigger Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
The upload button is defined as a PostBackTrigger.<br/>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<fieldset>
<legend>FileUpload in an UpdatePanel</legend>
First, enter a file name to upload your file to:
<asp:TextBox ID="FileName" runat="server" />
<asp:Button ID="CheckButton" Text="Check" runat="server" OnClick="CheckButton_Click" />
<br />
Then, browse and find the file to upload:
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br />
<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>
<br />
<asp:Label id="UploadStatusLabel"
runat="server" style="color:red;">
</asp:Label>
</fieldset>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="UploadButton" />
</Triggers>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
Comentários
Use o PostBackTrigger controle para habilitar os controles dentro de um UpdatePanel para causar um postback em vez de executar um postback assíncrono.
Use o RegisterPostBackControl método do ScriptManager controle para registrar programaticamente um controle de postback. Em seguida, você pode chamar o Update método do UpdatePanel controle quando o controle de gatilho executar um postback.
Observação
Não há suporte para adicionar PostBackTrigger controles programaticamente.
Se um controle for definido como um PostBackTrigger e AsyncPostBackTrigger controle, uma exceção será gerada.
Construtores
PostBackTrigger() |
Inicializa uma nova instância da classe PostBackTrigger. |
Propriedades
ControlID |
Obtém ou define o nome do controle que é um controle PostBackTrigger para um controle UpdatePanel. |
Owner |
Obtém uma referência ao controle UpdatePanel a que o UpdatePanelTrigger tem como destino. (Herdado de UpdatePanelTrigger) |
Métodos
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
FindTargetControl(Boolean) |
Pesquisa o controle especificado na propriedade ControlID. (Herdado de UpdatePanelControlTrigger) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
HasTriggered() |
Retorna um valor que indica se o gatilho foi ativado. |
Initialize() |
Inicializa o objeto PostBackTrigger. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto PostBackTrigger atual. |