ClientScript.RegisterStartupScript

08/09/2008

0

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???


Hal9000

Hal9000

Responder

Posts

08/09/2008

Ricardo Silva

tenta colocar esses codigos no load da pagina...
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


Responder

08/09/2008

Hal9000

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?


Responder

08/09/2008

Ricardo Silva

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


Responder

09/09/2008

Hal9000

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

    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



Responder

09/09/2008

Ricardo Silva

e no load??


Responder

10/09/2008

Hal9000

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


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



Responder

10/09/2008

Ricardo Silva

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


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar