Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

slocun

[Resolvido] carregar automaticamente dados noutro form quando mud

Recommended Posts

Boas!

 

Os dados que tenho num form preciso de carrega-los automaticamente ao passar para outro form, ou seja, quando estou no 1º form e mudo para o 2º form, quero que apareçam imediatamente no 2º os dados que estava a ver no 1º.

 

espero que me possam ajudar...

 

cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta você executar os procedimentos que foram feitos para carregar o segundo form como foi carregado no primeiro form.

Ou ainda se quiser, no segundo formulário crie uma i-frame apontando para o primeiro formulário.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem...se eu carregar como fiz no primeiro, terei de carregar num botao para que apareçam os dados, as eu quero k mal entre no 2º form os dados automaticamente apareçam tb...sem carregar em nada...

como se cria um iframe?

 

cumps...

(desculpe a demora a responder, mas não tive oportunidade de o fazer antes)

 

bem...se eu carregar como fiz no primeiro, terei de carregar num botao para que apareçam os dados, as eu quero k mal entre no 2º form os dados automaticamente apareçam tb...sem carregar em nada...

como se cria um iframe?

 

cumps...

(desculpe a demora a responder, mas não tive oportunidade de o fazer antes)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer ao invés de clicar no botão carregar ao entrar no formulário não vai poder ser i-frame, pq i-frame nada mais é que do que uma janela que chama outra página.

Acredito que a melhor solução seja colocar o código do seu botão no Page_Load do seu outro formulário e fazendo as adaptações se necessário.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer ao invés de clicar no botão carregar ao entrar no formulário não vai poder ser i-frame, pq i-frame nada mais é que do que uma janela que chama outra página.

Acredito que a melhor solução seja colocar o código do seu botão no Page_Load do seu outro formulário e fazendo as adaptações se necessário.

 

Abraços...

o que eu fiz inicialmente foi uma variavel de sessão, e dps no segundo form com um botao eu lia essa variavel e iria fazer uma query à BD e entao mostrar os dados no formulario...mas eu gostaria não ter de carregar no botao para que os dados aparece-sem...bem, isto tudo porque no 1º form tem muitos botoes e quando imprimo aparecem esses botoes todos menos o de imprimir que apenas este consigo esconder...e dava-me jeito personalizar tb a pag para imprimir, entao pensei que poderia fazer um segundo form e nele meter a pag como quero e sem botoes, e entao imprimir tudo direito...

 

cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

Armazena os parâmetros do primeiro formulário em variáveis públicas, desta forma você pode carregar seus dados no Page_Load do segundo formulário sem ter botão algum, pois os parâmetros já foram alimentados no formulário anterior. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Armazena os parâmetros do primeiro formulário em variáveis públicas, desta forma você pode carregar seus dados no Page_Load do segundo formulário sem ter botão algum, pois os parâmetros já foram alimentados no formulário anterior. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Abraços...

sabe-me só esclarecer como faço isso? porque page_load eu nunca sequer tinha ouvido falar e variaveis publicas também não sei como se criam...sou novo nisto e ha muita coisa que não sei...

 

cumps

obrigado por tudo! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Page_Load é como uma Sub do seu formulário, o primeiro bloco de script que é executado é o que fica dentro do Page_Load e qualquer submit que você tenha no formulário ele percorre novamente o Page_load.

Se der um clique duplo no design do seu formulário automaticamente ele cri o Page_load no seu código:

 

C#:

protected void Page_Load(object sender, EventArgs e) {
}

VB:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub

No caso das variáveis públicas, é mais ou menos como uma Session, você as declara em uma classe ou módulo, desta forma elas são acessíveis em qualquer lugar da sua aplicação, por exemplo, abaixo este uma classe com o nome de Variaveis onde eu declarei duas variáveis, vUsuarioId e vNomeUsuario.

Repare que na minha classe eu tive que herdar o System.Web.UI.Page pois nos meus formulários eu terei que herdar a minha classe Variaveis.

O código da classe fica assim:

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

/// <summary>
/// Summary description for Variaveis
/// </summary>
public class Variaveis : System.Web.UI.Page {
	public string vUsuarioId, vNomeUsuario;

	public Variaveis() {
		//
		// TODO: Add constructor logic here
		//
	}
}

No meu formulário Default.aspx, por exemplo, fica da seguinte forma:

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : Variaveis 
{
	protected void Page_Load(object sender, EventArgs e)
	{
		vUsuarioId = "01";
		vNomeUsuario = "Bruno Quintella";
	}
}
Repare que no meu formulário eu herdei a minha classe Variaveis, desta forma consigo utilizar as variáveis vUsuarioId e vNomeUsuario.

 

Espero que eu tenha sido claro. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ha um problema...eu não percebo muito de C#, estou a trabalhar em VB (desculpe não ter informado disso antes) e por isso não estou a conseguir passar de um para outro...

 

se me pudesse dar mais essa ajudinha...agradecia.

 

cumps!

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Código em VB:

Classe Variaveis.vb

Imports Microsoft.VisualBasic

Public Class Variaveis
	Inherits System.Web.UI.Page

	Public vUsuarioId, vNomeUsuario As String
End Class

Arquivo Default.aspx

Partial Class Default
	Inherits Variaveis

	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		vUsuarioId = "01"
		vNomeUsuario = "Bruno Quintella"
	End Sub
End Class

Repare que no exemplo utilizo os dois recursos que você estava em dúvida, que é como utilizar Variáveis Públicas e estou aimentando elas no Page_Load do formulário.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok...muito obrigado por toda a ajuda!

 

vou experimentar, e logo lhe direi algo, so espero que seja: "muito obrigado! resultou" :)

 

cumps...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Código em VB:

Classe Variaveis.vb

Imports Microsoft.VisualBasic

Public Class Variaveis
	Inherits System.Web.UI.Page

	Public vUsuarioId, vNomeUsuario As String
End Class

Arquivo Default.aspx

Partial Class Default
	Inherits Variaveis

	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		vUsuarioId = "01"
		vNomeUsuario = "Bruno Quintella"
	End Sub
End Class

Repare que no exemplo utilizo os dois recursos que você estava em dúvida, que é como utilizar Variáveis Públicas e estou aimentando elas no Page_Load do formulário.

 

Abraços...

como posso pegar os valores que se encontram nas textbox? em vez de:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		vUsuarioId = "01"
		vNomeUsuario = "Bruno Quintella"
	End Sub
------------

eu experimentei:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		p0 = txt0.text
		p1 = txt1.text
	End Sub
-------------

e não funcionou...

o seu código funciona em visual studio, web developer né? (aspx)

 

e a parte de: Imports Microsoft.VisualBasic

não funcionou...

o mais proximo que xeguei foi a: <%@ Import Microsoft.VisualBasic %>

mas o programa disse que a instrução Microsoft.VisualBasic não pertencia ao import

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, eu utilizo o Visual Studio 2008 Professional.

Para você pegar os valores do TextBox, a idéia esta certa, mas você vai ter que fazer isso no evento do seu botão, pois provavelmente no seu Page_Load o seu TextBox ainda vai estar em branco.

Referente ao Imports, acredito que para você o certo fica assim:

<% @Import Namespace="Microsoft.VisualBasic" %>

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, eu utilizo o Visual Studio 2008 Professional.

Para você pegar os valores do TextBox, a idéia esta certa, mas você vai ter que fazer isso no evento do seu botão, pois provavelmente no seu Page_Load o seu TextBox ainda vai estar em branco.

Referente ao Imports, acredito que para você o certo fica assim:

<% @Import Namespace="Microsoft.VisualBasic" %>

Abraços...

mas se eu meto as variaveis publicas dentro do botao o programa diz que não são para serem declaradas dentro do botao, se as declaro fora, depois não dá para dar-lhes os valores que carreguei nas textbox...

 

exemplo do meu codigo:

<%@ import namespace="System.Data.OleDb" %>
<%@ Import Namespace="Microsoft.VisualBasic" %>

<script runat="Server">

	Partial Class _Default
		Inherits System.Web.UI.Page
		Public p0, p1, p2, p3, p4, p5, ... As String
		Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
			
		End Sub
	End Class

Protected Sub Btcarregar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Btcarregar.Click
		Dim nn As Integer
		nn = Session("nr")
		Lbl.Text = ""
		Dim conexao As OleDbConnection
		Dim Comando As OleDbCommand
		Dim sql As String
		Dim dr As OleDbDataReader
		conexao = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & MapPath("GestrofaBD.mdb"))
		conexao.Open()
		sql = "SELECT * FROM Cliente WHERE Nr =" & nn
		Comando = New OleDbCommand(sql, conexao)
		dr = Comando.ExecuteReader()
		If (dr.HasRows) Then
			While (dr.Read())
				lablel.Text = dr.GetValue(0)
				txt1.Text = dr.GetValue(1)
				txt2.Text = dr.GetValue(2)
				txt3.Text = dr.GetValue(3)
				txt4.Text = dr.GetValue(4)
				Txt5.Text = dr.GetValue(5)
				...
			End While
		End If
	p0 = lablel.Text
	p1 = txt1.Text
	p2 = txt2.Text
	p3 = txt3.Text
	p4 = txt4.Text
	p5 = Txt5.Text
	...
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu código não chega a estar errado, mas como você as declarou no seu formulário, você só poderá usá-las no seu formulário.

Repare no exemplo que eu criei, que foi criado uma classe pública separada do meu formulário só para declarar as variáveis.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas criou separado onde? dando dois clikes no form?

eu fiz isso e introduzi o seguinte codigo:

CODE
'Partial Class _Default

Public Class Page_Default

Inherits System.Web.UI.Page

Public p0, p1, p2, p3, p4, p5, ... As String

 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

 

End Sub

End Class

e fiquei com apenas o seguinte na pag principal:

CODE
<%@ import namespace="System.Data.OleDb" %>

<%@ Import Namespace="Microsoft.VisualBasic" %>

<script runat="Server">

 

Public p0, p1, p2, p3, p4, p5, ... As String

...

e na pag onde eu quero que carregue a informação tenho:

CODE

<%@ import namespace="System.Data.OleDb" %>

<%@ Import Namespace="Microsoft.VisualBasic" %>

<script runat="Server">

'Partial Class _Default

'Inherits System.Web.UI.Page

Public p0, p1, p2, p3, p4, p5, ... As String

Protected Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

txt0.Text = p0

txt1.Text = p1

txt2.Text = p2

txt3.Text = p3

txt4.Text = p4

Txt5.Text = p5

...

End Sub

o script e o load estao sublinhados, a azul...

script --> 'context' is not a member of '_default'

load --> Event 'Load' cannot be found.

 

caso eu retire o "form1" do primeiro codigo e deste ultimo, as variaveis irao dar o seguinte erro:

 

Variable 'p0' conflits with variable 'p0' in the base class '_Default' and should be declared 'shadow'

 

não estou a perceber muito disto :wacko:

os nomes não devem tar a coincidir, não sei...

 

espero que consida dar mais uma ajudinha...

 

cumpz! :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem...consegui com que o conflito entre variaveis para-se e tb fiz com que desaparece-se o sublinhado do script e do load...mas quando meti a correr, a informação da pag principal não foi carregada na outra... :unsure:

 

alguma ideia?

 

abraço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não vai conseguir usar as variáveis que você declarou no seu primeiro formulário lá no segundo, repare o que eu disse no post 10. Eu criei um arquivo chamado Variaveis.vb onde eu declarei as variáveis, e eu usei elas no Default.aspx.

Você esta declarando suas variáveis na Default.aspx, desta forma você só vai conseguir usa-las na Default, não vai conseguir em outro formulário.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem...eu criei um variaveis.vb e para experimentar também criei um variaveis.aspx.vb, mas ainda não consegui nada...

 

o código:

variaveis.vb:

CODE
Imports Microsoft.VisualBasic

 

Public Class Variaveis

Inherits System.Web.UI.Page

Public p0, p1, p2, p3, p4, p5, ... As String

End Class

principal.aspx:

CODE
Protected Sub Bt_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt.Click

p0 = lablel.Text

p1 = txt1.Text

p2 = txt2.Text

p3 = txt3.Text

p4 = txt4.Text

p5 = Txt5.Text

...

Response.Redirect("Imprimir.aspx")

End Sub

imprimir.aspx:

CODE
Partial Class default --> (keyword is not valid as an identifier)

Inherits variaveis

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

txt0.Text = p0

txt1.Text = p1

txt2.Text = p2

txt3.Text = p3

txt4.Text = p4

Txt5.Text = p5

...

End Sub

End Class

Erro de compilação:

 

Linha 29: Partial Class default

Linha 30: Inherits variaveis

Linha 31: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

 

Amigo, eu sei que já começo a "chatear", mas desta vez não está facil de resolver o problema, peço desde já desculpa, e agradeço todos os conselhos dados...

abraço http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.