Array
(
)

ClientScript.RegisterStartupScript

Hal9000
   - 08 set 2008

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 ClientScript.RegisterStartupScript

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 ClientScript.RegisterStartupScript ?

Como eu faço isso? Ou existe alguma outra solução???

Ricardo Silva
   - 08 set 2008

tenta colocar esses codigos no load da pagina...
fora do ´!ispostaBack´

#Código

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

Hal9000
   - 08 set 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?

Ricardo Silva
   - 08 set 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...

Hal9000
   - 09 set 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

#Código

    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


Ricardo Silva
   - 09 set 2008

e no load??

Hal9000
   - 10 set 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...

#Código

        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()


Ricardo Silva
   - 10 set 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....