Usuário com melhor resposta
Loadcontrol de controles com updatepanel causando postback nos demais

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
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
- Sugerido como Resposta Ricardo Barbosa Cortes segunda-feira, 18 de agosto de 2014 18:26
- Marcado como Resposta Ricardo Barbosa Cortes segunda-feira, 18 de agosto de 2014 18:26
- Não Marcado como Resposta Rafael Metring segunda-feira, 18 de agosto de 2014 19:27
- Marcado como Resposta Rafael Metring segunda-feira, 18 de agosto de 2014 19:29
- Editado Rafael Metring segunda-feira, 18 de agosto de 2014 19:30
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 ?
- Editado Rafael Metring 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... -
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
- Sugerido como Resposta Ricardo Barbosa Cortes segunda-feira, 18 de agosto de 2014 18:26
- Marcado como Resposta Ricardo Barbosa Cortes segunda-feira, 18 de agosto de 2014 18:26
- Não Marcado como Resposta Rafael Metring segunda-feira, 18 de agosto de 2014 19:27
- Marcado como Resposta Rafael Metring segunda-feira, 18 de agosto de 2014 19:29
- Editado Rafael Metring segunda-feira, 18 de agosto de 2014 19:30