none
PostBack... RRS feed

  • Pergunta

  • Galera

    O problema é o seguinte:

    tenho um sistema onde construi um sistema de correio interno e tal.. é bem simples tem um data grid q lista as mensagens recebidas e 1 botão para chamar a pagina onde escreve a mensagem.. mas depois q escrevo a mensagem eu uso JavaScript pra fechar a pagina corrente e atualizar a pagina pai para q a mensagem q acabei de enviar(no caso enviei pra mim mesmo) ja apareça no datagrid, ate ai tudo bem.. mas agroa eu estou usando um esquema de paginação no datagrid onde a paginação so funciona se a chamada estiver dentro de uma estrutura de :   if(!Page.IsPostBack) .... Mas se ficar dentro desse if quando escrevo a mensagem e usando o JavaScript do um reload ele nao traz o registro q acabei de inserir..

     

    Alguem pode me dar alguma ideia do q eu posso fazer nesse caso????

    sexta-feira, 1 de setembro de 2006 13:12

Respostas

  • ".. mas depois q escrevo a mensagem eu uso JavaScript pra fechar a pagina corrente e atualizar a pagina pai para q a mensagem q acabei de enviar.."

    Como é que você está atualizando a página pai? Talvez nem precise do hidden, e sim um parâmetro que sinalizará que o load está sendo feito desta página filha....

    A idéia seria esta no seu codefile :
    if HttpContext.Current.Request.Params("seuInput")="um valor definido por você"  then
         Atualizo o grid como quero e faço outras coisas...
    End if

    Ou seja, é ter um flag que lhe indique o que gerou o load na página.

    ps: Para criar hidden no lado servidor, usa-se o ClientScript.


     

    terça-feira, 5 de setembro de 2006 20:32

Todas as Respostas

  • Daniel,

    como está o seu java script para recarregar a página?

     


    Ricardo Oneda
    http://thespoke.net/blogs/oneda

    sexta-feira, 1 de setembro de 2006 13:30
    Moderador
  • Olá Daniel,

         Dá uma olhada no controle RadAjaxManager do telerik (www.telerik.com.br) creio que resolverá seu problema e lhe facilitará todo o processo.

        Abraços.

     

    segunda-feira, 4 de setembro de 2006 17:08
  • Eu faço desse jeito aki:

     

    Response.Write("<script language=javascript>window.opener.document.location.reload();</script>");

    Response.Write("<script language=javascript>window.close();</script>");

    terça-feira, 5 de setembro de 2006 13:20
  • Acessei o www.telerik.com e baixei o Ajax né..

    Mas nao consegui usar.. me embaralho um pouco com esses componentes..

    terça-feira, 5 de setembro de 2006 17:04
  • Daniel, numa determinada aplicação que fiz, tenho o mesmo problema.
    No meu contexto, um input hidden resolveu tranquilamemente a questão, pois este hidden me informa se é um postback normal ou um que eu forcei e não queria que a página tivesse o comportamento quando for um normal, simplesmente por chamar a mesma página.

    Neste input, os meus javascripts (funções) o alteram antes do submit, e lá no code file eu verifico o seu conteúdo para saber se foi um postback efetuado por alguma função javascript.

    É uma solução, a melhor para você? Não sei.
    É apenas uma idéia.

    Falou!

    terça-feira, 5 de setembro de 2006 17:16
  • Daniel, no meu ponto de vista, se a tela tem mesmo só um botão então eu acho que você deveria carregar sempre o DataGrid e não aplicar a condição do IsPostBack.

    Abraços,

    Chilá

    terça-feira, 5 de setembro de 2006 18:06
  • No meu ponto de vista vc nao entendeu NADA do q eu escrevi..

    terça-feira, 5 de setembro de 2006 18:53
  • Desculpa a ignorancia mas nao sei como usar um input hidden..

    Vc tem como me clarear as ideias? Eu uso o Asp .NET 1.1 com C#..

    terça-feira, 5 de setembro de 2006 18:55
  • ".. mas depois q escrevo a mensagem eu uso JavaScript pra fechar a pagina corrente e atualizar a pagina pai para q a mensagem q acabei de enviar.."

    Como é que você está atualizando a página pai? Talvez nem precise do hidden, e sim um parâmetro que sinalizará que o load está sendo feito desta página filha....

    A idéia seria esta no seu codefile :
    if HttpContext.Current.Request.Params("seuInput")="um valor definido por você"  then
         Atualizo o grid como quero e faço outras coisas...
    End if

    Ou seja, é ter um flag que lhe indique o que gerou o load na página.

    ps: Para criar hidden no lado servidor, usa-se o ClientScript.


     

    terça-feira, 5 de setembro de 2006 20:32
  • Valeu pela logica..

    usei Session.. fico meio chato de fazer em todas as paginas do sistema mas funciono perfeitamente..

     

    quarta-feira, 6 de setembro de 2006 13:24
  • Ok Daniel, no que é possível tentamos também colaborar... :D

    Quanto a fazer em todas as páginas, creio que não exista outra alternativa, já que é um comportamento específico para sua aplicação, e em relação ao session, acho que você já deva saber do cuidado ao não utilizar este recurso para "qualquer coisa", talvez para o servidor em que sua app esteja rodando seja insignificante, mas só lembrando que além da opção dos inputs creio que o ViewState também o ajude numa outra solução...é só dar uma lida sobre o objeto.

    Falou!

     

    quarta-feira, 6 de setembro de 2006 13:51
  • Olá Daniel,

        Vc falou acima que não conhece muito bem o telerik, bom, segue o link de um site que tem exemplos funcionais do telerik, caso seja de interesse.

        http://www.telerik.com/r.a.d.controls/Input/Examples/Functionality/OrderForm/DefaultCS.aspx

    Boa sorte e abraços.

    segunda-feira, 11 de setembro de 2006 17:30