ClientScript.RegisterStartupScript
Olá a todos...
Estou enfrentado um problema estranho numa página de pesquisa.
Acontece o seguinte:
Nessa página eu tenho um grid com dois botões um abre um popup com as fotos do item.
Estou chamando esse popup com um Javascript registrado através do [b:83bd57020e]ClientScript.RegisterStartupScript[/b:83bd57020e]
O segundo botão chama uma página de detalhes do item escolhido.
Acontece que: se clico no popup da foto e depois fecho e em seguida vou para a página de detalhes, quando volto através do navegador para a minha página com o grid, ele abre novamente o popup!
Pq acontece esse problema?
Eu teria que ´zerar´ os scripts registrados com o [b:83bd57020e]ClientScript.RegisterStartupScript[/b:83bd57020e] ?
Como eu faço isso? Ou existe alguma outra solução???
Estou enfrentado um problema estranho numa página de pesquisa.
Acontece o seguinte:
Nessa página eu tenho um grid com dois botões um abre um popup com as fotos do item.
Estou chamando esse popup com um Javascript registrado através do [b:83bd57020e]ClientScript.RegisterStartupScript[/b:83bd57020e]
O segundo botão chama uma página de detalhes do item escolhido.
Acontece que: se clico no popup da foto e depois fecho e em seguida vou para a página de detalhes, quando volto através do navegador para a minha página com o grid, ele abre novamente o popup!
Pq acontece esse problema?
Eu teria que ´zerar´ os scripts registrados com o [b:83bd57020e]ClientScript.RegisterStartupScript[/b:83bd57020e] ?
Como eu faço isso? Ou existe alguma outra solução???
Hal9000
Curtidas 0
Respostas
Ricardo Silva
08/09/2008
tenta colocar esses codigos no load da pagina...
fora do ´!ispostaBack´
esse codigo é responssavel para limpar o cache da pagina...
Ah... pra usa o ScriptManager.RegisterStartupScript ao invez do ClientScript.RegisterStartupScript isto é se vc utiliza ajax
fora do ´!ispostaBack´
Response.Expires = 0; Response.ExpiresAbsolute = DateTime.Now.AddMinutes(-1); Response.AddHeader("pragma", "no-cache"); Response.AddHeader("cache-control", "private"); Response.CacheControl = "no-cache";
esse codigo é responssavel para limpar o cache da pagina...
Ah... pra usa o ScriptManager.RegisterStartupScript ao invez do ClientScript.RegisterStartupScript isto é se vc utiliza ajax
GOSTEI 0
Hal9000
08/09/2008
Olá Rica...
Coloquei o código no Load da página.
Mas o PopUp continua Abrindo :(
Eu uso Ajax nessa página, mas nunca tinha me deparado com um problema desses.
Alguma idéia?
Coloquei o código no Load da página.
Mas o PopUp continua Abrindo :(
Eu uso Ajax nessa página, mas nunca tinha me deparado com um problema desses.
Alguma idéia?
GOSTEI 0
Ricardo Silva
08/09/2008
vc utiliza o isPostBack...
parece que vc esta utilizando um evento de server/side para executar um evento client/side, e qualque evento server é executado o load da pagina, colocando um breakPoint da pra perceber isto...
qualquer coisa vc posta o codigo do seu Load e a função pra abrir o popup, pois eu ja passei por isso.... resolvi com o tempo....
pois no começo eu me confundia o que era execução em cliente e servidor...
blz...
parece que vc esta utilizando um evento de server/side para executar um evento client/side, e qualque evento server é executado o load da pagina, colocando um breakPoint da pra perceber isto...
qualquer coisa vc posta o codigo do seu Load e a função pra abrir o popup, pois eu ja passei por isso.... resolvi com o tempo....
pois no começo eu me confundia o que era execução em cliente e servidor...
blz...
GOSTEI 0
Hal9000
08/09/2008
Eu Criei uma classe para chamaro JavaScript sempre que eu precisar..
Mas já to começando a achar que não foi uma boa idéia...
Eu tb to me confundindo todo com esse lance de Server-Side/Client-Side
Mas já to começando a achar que não foi uma boa idéia...
Eu tb to me confundindo todo com esse lance de Server-Side/Client-Side
Public Sub AbrirPopUp() Dim Jscript As String Jscript = "<script type=´text/javascript´ language=´javascript´>" & "window.open(´" & myUrl & "´, ´CustomPopUp´, " & "´width= " & myLargura & ",height=" & myAltura & ",scrollbars=no,toolbar=yes,titlebar=no,location=no,Directories=no,menubar=no,status=no´)" & "</script>" Pagina.ClientScript.RegisterStartupScript(myPagina.GetType, "abrirjanela", Jscript) End Sub
GOSTEI 0
Ricardo Silva
08/09/2008
e no load??
GOSTEI 0
Hal9000
08/09/2008
Rica. A chamada do Popoup está num botão (Template) dentro de um
gridview. O Complicação...rs
O Código segue abaixo... Como vc pode ver eu uso um objeto para para registar o javascript do popup.... inclusive uso um para chamar o caminho da janela que estou abrindo também...
No começo achei que era uma boa idéia fazer assim, mas to achando que usar tantos objetos assim é uma roubada! O que vc acha?
Server-Side/Client-Side Bahhh... Ohhhh Saudade do desktop...
gridview. O Complicação...rs
O Código segue abaixo... Como vc pode ver eu uso um objeto para para registar o javascript do popup.... inclusive uso um para chamar o caminho da janela que estou abrindo também...
No começo achei que era uma boa idéia fazer assim, mas to achando que usar tantos objetos assim é uma roubada! O que vc acha?
Server-Side/Client-Side Bahhh... Ohhhh Saudade do desktop...
Dim o As New cCaminho ´OBJETO QUE RETORNA O CAMINHO Dim oPop As New cPopUp ´OBJETO QUE ABRE UMA POPUP Dim Url As String Url = o.Caminho(Pth.Item_Foto, Cam.Completo) & "?Chave=" & myID_Chave & " &Foto= 1" oPop.Pagina = Me oPop.Url = Url oPop.Altura = 510 oPop.Largura = 510 ´-------------------- oPop.AbrirPopUp()
GOSTEI 0
Ricardo Silva
08/09/2008
apertando F5 ele tambem acontesse este erro...
no Pagina.ClientScript.RegisterStartupScript(myPagina.GetType, ´abrirjanela´, Jscript) axo que tem um paremetro se não me engano é o ultimo que é buleano....
seta ele como false
pelo menos no ScriptManager.RegisterStartupScript tem... qlquer coisa uso o ScriptManager.RegisterStartupScript e ve o que acontesse....
pois o ScriptManager que é responsavel pelas chamadas assimcronas....
o ClientScript.RegisterStartupScript era usado antes... blz....
no Pagina.ClientScript.RegisterStartupScript(myPagina.GetType, ´abrirjanela´, Jscript) axo que tem um paremetro se não me engano é o ultimo que é buleano....
seta ele como false
pelo menos no ScriptManager.RegisterStartupScript tem... qlquer coisa uso o ScriptManager.RegisterStartupScript e ve o que acontesse....
pois o ScriptManager que é responsavel pelas chamadas assimcronas....
o ClientScript.RegisterStartupScript era usado antes... blz....
GOSTEI 0