Jump to content

Archived

This topic is now archived and is closed to further replies.

Faccruz

[Resolvido] Passar SQL para janela Pop Up

Recommended Posts

bom dia

 

Como faço para abrir uma janela PopUp enviando uma string SQL?

 

tentei fazer dessa forma

 

Response.Write("<script language=""javascript"">window.open(Resultado.aspx?SQL=""" & strSQL & """, "", ""width=555, heigth=417"");</script>")

Mas dá erro, onde está o erro?

 

Aproveitando, como vou recuperar o SQL na janela aberta? Funciona dessa forma? Request("SQL")

Share this post


Link to post
Share on other sites

De uma olhada no artigo, eu não dei response.write no window.open.

 

Abraços...

 

Realmente foi um erro meu. Mas como faço para chamar a função? tenho que incluir nos atributos do botão? E o código que já tenho nesse botão serão executados normalmente?

Share this post


Link to post
Share on other sites

De uma olhada no artigo, eu não dei response.write no window.open.

 

Abraços...

 

Realmente foi um erro meu. Mas como faço para chamar a função? tenho que incluir nos atributos do botão? E o código que já tenho nesse botão serão executados normalmente?

Share this post


Link to post
Share on other sites

Existem dois tipos de eventos que seu botão vai lançar:

1) Client-Side: o javascript que você adicionar na propriedade "onclientclick" do seu botão.

2) Server-Side: após executar o Client-Side, ele vai executar o server-side, que é o evento que você colocou no arquivo .cs.

 

Você pode fazer assim, mais ou menos como foi feito no tutorial:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
	btnSeuBotao.OnClientClick = "java script:window.open(Resultado.aspx?SQL=""" & strSQL & """, "", ""width=555, heigth=417"");"
End Sub

No seu caso acho que nem vai precisar criar o evento no Server-Side.

Share this post


Link to post
Share on other sites

Existem dois tipos de eventos que seu botão vai lançar:

1) Client-Side: o javascript que você adicionar na propriedade "onclientclick" do seu botão.

2) Server-Side: após executar o Client-Side, ele vai executar o server-side, que é o evento que você colocou no arquivo .cs.

 

Você pode fazer assim, mais ou menos como foi feito no tutorial:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
	btnSeuBotao.OnClientClick = "java script:window.open(Resultado.aspx?SQL=""" & strSQL & """, "", ""width=555, heigth=417"");"
End Sub

No seu caso acho que nem vai precisar criar o evento no Server-Side.

 

Eu havia pensado nesse OnClientClick, mas ele carrega no onload da página e a string strSQL recebe valor só depois que clicar no botão Localizar

Share this post


Link to post
Share on other sites

Ninguem nunca precisou abrir o resultado de uma pesquisa em PopUp?

 

Encontro por aí como selecionar dados de um PopUp para a página principal.

Share this post


Link to post
Share on other sites

A janela PopUp que você quer abrir, é no click do botão Localizar?

Nesse botão você vai montar o comando SQL e mandar abrir a popup, é isso?

Share this post


Link to post
Share on other sites

Então a maneira que você fez no início do tópico está certa. Qual o erro que está dando?

 

Para montar o SQL, você precisa apenas pegar valores que estão em tela? Se sim, você pode fazer tudo isso no Client-Side (Javascript), assim você evita um postback desnecessário.

 

Algo como:

function mostraPesquisa()
{
   var sql = ""// aqui você pega os valores dos campos da tela com JS.
   window.open("Resultado.aspx?SQL="+sql, "" , "width=555, heigth=417");
}
E no botão:

<asp:Button runat="server" ID="Pesquisar" OnClientClick="mostraPesquisa(); return false;"/>

Share this post


Link to post
Share on other sites

Fiz dessa maneira.

 

Default.aspx

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
	   btnLocaliza.OnClientClick = "java script:MostraPesquisa('" & rbtnList.SelectedIndex & "', '" & edtCPF.Text & "', '" & edtNF.Text & "', '" & DropDownList1.SelectedIndex & "');"
End Sub

JScript

function MostraPesquisa(Tipo, CPF, NF, Loja) {
	window.open('Cartelas.aspx?Param1=' + Tipo + '&Param2=' + CPF + '&Param3=' + NF + '&Param4=' + Loja + '', '', 'width=600, height=100');	
}

Cartelas.aspx (para verificar se esta certo)

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		MsgBox("Tipo: " & Request("Param1"))
		MsgBox("CPF: " & Request("Param2"))
		MsgBox("NF: " & Request("Param3"))
		MsgBox("Loja: " & Request("Param4"))
	End Sub

Ele apenas traz o valor do Param1 e do Param4, o Param2 e Param3, que são TextBox não mostra o valor digitado. Esta correta a forma de envio?

Share this post


Link to post
Share on other sites

Realmente os campos CPF e NF estão indo vazio para o script...

 

já tentei dessa forma document.GetElementById('meu textbox').value no script, mas tbm não retorna nada.

 

tem como pegar o valor desses textbox e enviar para o script?

Share this post


Link to post
Share on other sites

Na janela popup, clica com o botão direito nela e vai nas propriedas da página. Nessa tela de propriedades, vai ter a URL, veja como está, se os valores dos textbox estão aparecendo na URL.

Share this post


Link to post
Share on other sites

Ele está assim

 

localhost:2631/Cartelas.aspx?Param1=0&Param2=&Param3=&Param4=0

não está passando os valores dos TEXTBOX para a função do JavaScript, já tentei de tudo

Share this post


Link to post
Share on other sites

Usar javascript com ASP.NET é sempre um problema, infelizmente.

Eu faria tudo com javascript, seria algo assim:

function MostraPesquisa() {
	var CPF = document.GetElementById('<%= this.edtCPF.ClientId %>').value;
	var NF = document.GetElementById('<%= this.edtNF.ClientId %>').value;
	var Tipo = document.GetElementById('<%= this.rbtnList.ClientId %>').selectedIndex;
	var Loja = document.GetElementById('<%= this.DropDownList1.ClientId %>').selectedIndex;

	window.open('Cartelas.aspx?Param1=' + Tipo + '&Param2=' + CPF + '&Param3=' + NF + '&Param4=' + Loja + '', '', 'width=600, height=100');	
}

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.