Button.PostBackUrl 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 a URL da página que será usada para postagem da página atual quando um usuário clicar no controle Button.
public:
virtual property System::String ^ PostBackUrl { System::String ^ get(); void set(System::String ^ value); };
[System.Web.UI.Themeable(false)]
public virtual string PostBackUrl { get; set; }
[<System.Web.UI.Themeable(false)>]
member this.PostBackUrl : string with get, set
Public Overridable Property PostBackUrl As String
Valor da propriedade
A URL da página da Web que será usada para postagem da página atual quando o controle Button for acionado. O valor padrão é uma cadeia de caracteres vazia (""), que faz com que a página execute postback para si mesma.
Implementações
- Atributos
Exemplos
O exemplo de código a seguir demonstra como usar a PostBackUrl propriedade para executar uma postagem entre páginas. Quando o usuário clica no Button controle, a página posta o valor inserido na caixa de texto na página de destino especificada pela PostBackUrl propriedade . Para executar este exemplo, você também deve criar um arquivo para a página de destino no mesmo diretório que este exemplo de código. O código da página de destino é fornecido no próximo exemplo.
<%@ page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
<title>Button.PostBackUrl Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Button.PostBackUrl Example</h3>
Enter a value to post:
<asp:textbox id="TextBox1"
runat="Server">
</asp:textbox>
<br /><br />
<asp:button id="Button1"
text="Post back to this page"
runat="Server">
</asp:button>
<br /><br />
<asp:button id="Button2"
text="Post value to another page"
postbackurl="Button.PostBackUrlPage2cs.aspx"
runat="Server">
</asp:button>
</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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
<title>Button.PostBackUrl Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Button.PostBackUrl Example</h3>
Enter a value to post:
<asp:textbox id="TextBox1"
runat="Server">
</asp:textbox>
<br /><br />
<asp:button id="Button1"
text="Post back to this page"
runat="Server">
</asp:button>
<br /><br />
<asp:button id="Button2"
text="Post value to another page"
postbackurl="Button.PostBackUrlPage2vb.aspx"
runat="Server">
</asp:button>
</form>
</body>
</html>
O exemplo de código a seguir demonstra como usar a Page.PreviousPage propriedade para acessar um valor que foi postado de outra página usando a PostBackUrl propriedade . Esta página obtém a cadeia de caracteres que foi postada da página anterior e a exibe para o usuário. Se você tentar executar este exemplo de código diretamente, receberá um erro porque o valor do text
campo será null
. Em vez disso, use esse código para criar uma página de destino e colocar o arquivo no mesmo diretório que o código do exemplo anterior. O nome do arquivo deve corresponder ao valor especificado para a PostBackUrl propriedade no exemplo anterior. Quando você executar o código do exemplo anterior, essa página será executada automaticamente quando a postagem entre páginas ocorrer.
Importante
Este exemplo tem uma caixa de texto que aceita a entrada do usuário, que é uma possível ameaça à segurança. Por padrão, ASP.NET páginas da Web validam que a entrada do usuário não inclui elementos html ou script. Para obter mais informações, consulte Visão geral de explorações de script.
<%@ 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">
void Page_Load (object sender, System.EventArgs e)
{
string text;
// Get the value of TextBox1 from the page that
// posted to this page.
text = ((TextBox)PreviousPage.FindControl("TextBox1")).Text;
// Check for an empty string.
if (text != "")
PostedLabel.Text = "The string posted from the previous page is "
+ text + ".";
else
PostedLabel.Text = "An empty string was posted from the previous page.";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
<title>Button.PostBackUrl Target Page Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Button.PostBackUrl Target Page Example</h3>
<br />
<asp:label id="PostedLabel"
runat="Server">
</asp:label>
</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">
Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim text As String
' Get the value of TextBox1 from the page that posted
' to this page.
text = CType((PreviousPage.FindControl("TextBox1")), TextBox).Text
' Check for an empty string.
If Not (text = "") Then
PostedLabel.Text = "The string posted from the previous page is " _
& text & "."
Else
PostedLabel.Text = "An empty string was posted from the previous page."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
<title>Button.PostBackUrl Target Page Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Button.PostBackUrl Target Page Example</h3>
<br />
<asp:label id="PostedLabel"
runat="Server">
</asp:label>
</form>
</body>
</html>
Comentários
A PostBackUrl propriedade permite que você execute uma postagem entre páginas usando o Button controle .
Observação
Somente caminhos especificados corretamente funcionam com essa propriedade. Por exemplo, caminhos relativos (Test/default.aspx
), caminhos absolutos (https://localhost/WebApp/default.aspx
) e virtual (~\Test\default.aspx
) funcionam corretamente. Caminhos formados incorretamente, como "/Test/default.aspx" ou "\Test\default.aspx" não funcionam. Consulte ASP.NET Caminhos do Projeto Web para obter uma discussão sobre como criar caminhos corretos.
Defina a PostBackUrl propriedade como a URL da página da Web para postar quando o Button controle for clicado. Por exemplo, especificar Page2.aspx
faz com que a página que contém o Button controle seja postada em Page2.aspx
. Se você não especificar um valor para a PostBackUrl propriedade , a página será posta de volta para si mesma.
Importante
Ao executar um postback entre páginas com controles com validação do lado do servidor, você deve verificar se a propriedade da IsValid página é true
antes de processar o postback. No caso de um postback entre páginas, a página a ser verificada é o PreviousPage. O código VB a seguir mostra como isso é feito:
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.PreviousPage.IsValid Then
' Handle the post back
Else
Response.Write("Invalid")
End If
End Sub
Para obter mais informações sobre técnicas de postagem entre páginas, consulte Postagem entre páginas no ASP.NET Web Forms.
Essa propriedade não pode ser definida por temas ou temas de folha de estilos. Para obter mais informações, consulte ThemeableAttribute e ASP.NET Temas e Capas.