none
Loadcontrol de controles com updatepanel causando postback nos demais RRS feed

  • Pergunta

  • Pessoal, boa noite.

    Possuo uma ferramenta que faz, na mastepage, a carga de varios webusercontrol.
    Cada webusercontrol destes possui um ou até mais de um updapanel com updatemode condicional.
    O problema é que cada vez que ocorre um loadcontrol na master, ele recarrega todos os demais.

    No primeiro controle que é carregado existe uma storedprocedure que registra algumas informações no banco. Se eu rodo a masterpage e carrego só este primeiro, apenas um registro aparece no banco.

    Se eu carrego dinamicamente mais 5 controles com updatepanel, ocorrem 5 inserções no banco, ou seja, eles causam de alguma forma um postback nos controles carregados anteriormente.

    Alguem sabe como solucionar isso ?

    Obrigado
    segunda-feira, 18 de agosto de 2014 03:37

Respostas

  • Corrigindo : Depois de mais alguns testes vi que fiz confusão nos testes e não estava solucionado não e fui realizar mais análise e descobri que o causador de tudo é na verdade um FAVICON..

    Quando existe esta linha no código e que aponta para um favicon que não existe, ele simplesmente causa redirects.. Existem alguns tópicos na internet comentando sobre este problema.

     <link rel="shortcut icon" href="favicon.ico">

    Fica a dica. Cuidem com o FAVICON, caso ele não exista !

    Pessoal, consegui descobrir o problema e não tinha absolutamente nada a ver com nada do que eu imaginava e deixo aqui a solução para caso alguém passe por isso também. Acho difícil mas...
    O problema ocorria na verdade por um erro em uma regra do helicon isapirewrite.
    Nesta página que tinha um webusercontrol adicionado manualmente, tinha uma regra errada que fazia o filtro isapi causar redirects que não dava para perceber abrindo a página e que acionava várias vezes o mesmo código.
    Por pura coincidência existiam 5 regras de redirect que era o mesmo número de webusercontrol, me induzindo a um erro que não existia.
    Acho raro que alguém passe por isso e ainda use o helicon isapi rewrite, mas deixo registrado a solução no meu caso.

    Abraços


    segunda-feira, 18 de agosto de 2014 14:06

Todas as Respostas

  • Mais um detalhe que acabei de detectar pessoal.

    O problema ocorre somente se existir na master um webusercontrol adicionando manualmente e os outros forem feito via código.

    Se eu adicionar todos os webusercontrols dinamicamente ele não gera este erro.

    <%@ Page  Language="VB" MasterPageFile="~/ipcommerce.master" AutoEventWireup="false"
        CodeFile="departamento.aspx.vb" Inherits="loja_departamento" %>
    
    <%@ Register Src="Loja/Controles/GridProduto.ascx" TagName="gridproduto" TagPrefix="grp" %>
    
    
    <asp:Content ID="ConteudoInicial" ContentPlaceHolderID="head" runat="Server">
    </asp:Content>
    
    <asp:Content ID="Content2" ContentPlaceHolderID="AreaCentral" runat="Server">
    <grp:gridproduto ID="gridProduto" runat="server" />
    </asp:Content>
    
    <asp:Content ID="ConteudoFinal" ContentPlaceHolderID="Script" runat="Server">
    </asp:Content>

    Os controles que eu carrego dinamicante eu adiciono no content1 e no content3

    O trecho que adiciona o controle está assim 

     Dim controle As New Control
                                        controle = LoadControl("loja/controles/" & _Widget.Id & ".ascx")
                                        If FlagFinal = False Then
                                            ConteudoInicial.Controls.Add(controle)
                                        Else
                                            ConteudoFinal.Controls.Add(controle)
                                        End If
                                        controle = Nothing

    Alguém sabe o porque disso ?


    segunda-feira, 18 de agosto de 2014 12:41
  • Pessoal, mais uma informação :

    Estava tentando investigar o problema e no meio da história resolvi colocar um response.write para ver o que estava vindo em alguns variáveis, sem o debugador e adivinhem.. quando coloca o response.write simplesmente tudo funciona normal e não aciona várias vezes os códigos de cada controle. Se tiro o response.write, volta o problema.

    este response.write foi inserido logo antes de começar a jogar os objetos dinamicamente para a tela.

    Não entendi qual a relação disso tudo, mas posso afirmar com toda segurança que se colocar o response.write tudo funciona e se tirar  ele para. Repeti o processo umas 5 vezes pra testar e realmente se confirmou..

    Agora fiquei mais perdido...
    segunda-feira, 18 de agosto de 2014 13:05
  • Corrigindo : Depois de mais alguns testes vi que fiz confusão nos testes e não estava solucionado não e fui realizar mais análise e descobri que o causador de tudo é na verdade um FAVICON..

    Quando existe esta linha no código e que aponta para um favicon que não existe, ele simplesmente causa redirects.. Existem alguns tópicos na internet comentando sobre este problema.

     <link rel="shortcut icon" href="favicon.ico">

    Fica a dica. Cuidem com o FAVICON, caso ele não exista !

    Pessoal, consegui descobrir o problema e não tinha absolutamente nada a ver com nada do que eu imaginava e deixo aqui a solução para caso alguém passe por isso também. Acho difícil mas...
    O problema ocorria na verdade por um erro em uma regra do helicon isapirewrite.
    Nesta página que tinha um webusercontrol adicionado manualmente, tinha uma regra errada que fazia o filtro isapi causar redirects que não dava para perceber abrindo a página e que acionava várias vezes o mesmo código.
    Por pura coincidência existiam 5 regras de redirect que era o mesmo número de webusercontrol, me induzindo a um erro que não existia.
    Acho raro que alguém passe por isso e ainda use o helicon isapi rewrite, mas deixo registrado a solução no meu caso.

    Abraços


    segunda-feira, 18 de agosto de 2014 14:06