Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
623
Assunto : ASP.NET
Titulo: Trocando dados entre WebForms

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



A estrutura de funcionamento do HTTP nos permite trocar dados entre páginas através de métodos GET e POST. Como no ASP.NET não podemos fazer POST para outra página, então ficamos limitados ao uso do GET.

Mas existe um outro truque que nos permite realizar a troca de dados. Utilizando o Server.Transfer, ao invés do response.redirect, a troca de uma página web para outra página web acontece no servidor. Isso faz com que tudo o que foi gerado na primeira requisição seja mantido.

Assim sendo, supondo que temos um webform1 e um webform2 e o webform2 precisará receber dados do WebForm1, então podemos fazer com que o webform2 acesse diretamente o webform1, desde que estejamos utilizando server.transfer entre os 2.

Neste caso temos duas formas de passar os dados : Podemos fazer com que os webControls do webform1 fiquem visiveis ao webform2 ou podemos tranferir valores isolados.

Veja um exemplo de um webform1 com os dois recursos :

Public Class WebForm1
Inherits System.Web.UI.Page
Dim v As Integer
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
valor = 10
Server.Transfer("webform2.aspx")
End Sub

Public Property valor() As Integer
Get
Return (v)
End Get
Set(ByVal Value As Integer)
v = Value
End Set
End Property
End Class


Para tornar o webControl (textbox1) visível ao webform2 é necessário trocar a declaração do controle de Protected para Public. Porém o visual studio não permitirá mantermos o public dentro da área de código mantida pelo visual studio, então precisaremos recortar a linha de declaração da área de código do visual studio e colocarmos fora desta área de código.

Já para a passagem de um valor simples foi criada uma propriedade, Valor, para manter esta informação.

No clique do botão a propriedade recebe o valor 10, que desejamos transmitir, e fazemos o server.transfer.

Veja o código do webform2 para recuperar a informação :

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Label1.Text = CType(context.Handler, WebForm1).valor
Label2.Text = CType(context.Handler, WebForm1).TextBox1.Text
End Sub

O context.handler contém uma instancia do WebForm1. Podemos então acessar tanto a propriedade valor como a textbox que transformamos em pública.

O único porém desta técnica é que o server.transfer ignora os mecanismos de autenticação do ASP.NET. Veja detalhes deste problema na dica em http://www.bufaloinfo.com.br/dicas.asp?cod=581


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 6/30/2018 5:26:00 AM
nome: wSTpbFBPstwEtwSOX
email: hiramf98@usa.net
comentário:
Have you read any good books lately? https://www.drugonsale.com cialis Natural Resource Wales, which also owns part of Wentwood Forest, has said that it will invest £500,000 in attempting to prevent the spread of the disease, with a further £2m set aside for future investment.

data: 6/30/2018 4:18:00 AM
nome: LuFXlzioTHfukTvaPMW
email: graham4k@aol.com
comentário:
How long have you lived here? https://www.drugonsale.com kamagra U.N. Secretary-General Ban Ki-moon said, "This heinous act must not be allowed to derail the progress that Tunisia continues to make in its democratic transition, including on the constitution, and in meeting the social and economic aspirations of the Tunisian people."

data: 6/30/2018 1:34:00 AM
nome: feujfFBLxDO
email: arlieh13@usa.net
comentário:
Do you like it here? https://www.drugonsale.com levitra âÂ?Â?IâÂ?Â?ve said before that I am not a historian and that when it comes to speaking of the dimensions of the Holocaust, it is the historians that should reflect on it. But in general I can tell you that any crime that happens in history against humanity, including the crime that Nazis committed towards the Jews as well as non-Jews, is reprehensible and condemnable. Whatever criminality they committed against the Jews, we condemn.âÂ?

data: 6/30/2018 12:29:00 AM
nome: icpOoEcdFCK
email: clark7l@yahoo.com
comentário:
I was made redundant two months ago https://www.drugonsale.com levitra Several of New York's members of Congress have also endorsed Kelly, including Democratic Sen. Chuck Schumer, who called the White House to suggest Kelly for the open position. Kelly previously served in Washington as the commissioner of U.S. Customs Service from 1998 to 2001.

data: 6/30/2018 12:15:00 AM
nome: DMyCIslYOCoMQW
email: cliff4l@lycos.com
comentário:
I wanted to live abroad https://www.drugonsale.com levitra The company, which describes its lithium and surfacetreatment chemicals businesses as its core, recently agreed tosell its industrial ceramics unit for $1.99 billion andclay-based additives business for $635 million.

 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br