Pergunta

Eu tenho um gridview que está dentro de um painel de atualização para um pop-up modal que tenho em uma página.
O problema é que a página inteira é atualizada toda vez que clico em um botão de imagem que está no meu gridview.Isso faz com que toda a minha página carregue e, como esmaeci o restante da página para que o usuário não possa clicar nela, isso é muito chato.

Alguém sabe o que estou perdendo.

Editar: Eu inseri uma solução melhor na parte inferior

Foi útil?

Solução 5

Vários meses depois, esse problema foi corrigido.O projeto em que estava trabalhando era uma versão 1.1 anterior que foi convertida para 2.0.Porém, no web.config esta linha permaneceu:

<xhtmlConformance mode="Legacy"/>

Quando foi comentado, todos os bugs que parecíamos ter com o kit de ferramentas de controle ajax desapareceram

Outras dicas

Certifique-se de ter o seguinte definido no UpdatePanel:ChildrenAsTriggers=false e UpdateMode=Condicional

você tem ChildrenAsTriggers = "false" no UpdatePanel?

Há algum erro de javascript na página?

Eu tive esse problema e me deparei com o seguinte artigo:

http://bloggingabout.net/blogs/rick/archive/2008/04/02/linkbutton-inside-updatepanel-results-in-full-postback-updatepanel-not-triggered.aspx

Meu botão não foi criado dinamicamente no código como neste exemplo, mas quando verifiquei o código no aspx com certeza estava faltando uma propriedade de ID.Ao adicionar o ID, o postback tornou-se assíncrono e passou a se comportar conforme o esperado.

Então, resumindo, verifique se o seu botão possui um ID!

Você está testando no Firefox ou IE?Temos um problema semelhante em que a página inteira é atualizada no Firefox (mas não no IE).Para contornar isso, usamos um asp:button oculto com o conjunto useSubmitBehavior="false".

<asp:Button ID="btnRefresh" runat="server" OnClick="btnRefresh_Click" Style="display: none" UseSubmitBehavior="false" />

A janela Modal é exibida usando a janela Modal do IE?Ou é um DIV que você está mostrando?

Se for um pop-up modal do IE, você precisa garantir que tem

   <base target="_self" /> 

Para ter certeza de que a postagem de volta está na página modal.

Se for um DIV, certifique-se de ter seu XHTML correto ou ele pode não saber o que atualizar.

Eu deixaria o onClick e o definiria como gatilho para o updatePanel.

É estranho que funcione no FF e não no IE.Isso é o oposto do comportamento que experimentamos.

UpdatePanels pode ser sensível a HTML malformado.Faça um View Source no seu navegador e execute-o através de algo como o validador W3C para procurar por algo estranho (div ou tabela não fechada sendo os suspeitos do costume)

Se você usa o Firefox, há uma extensão/complemento validador de HTML disponível que funciona muito bem.

Para referência..

Também notei, ao usar o temido <asp:UpdatePanel ... /> e <asp:LinkButton ... />, que assim como UpdateMode="Conditional" no UpdatePanel as seguintes outras alterações são necessárias:

  • ViewStateMode="Enabled" é obrigatório em <asp:Content ... /> (Eu configurei para Disabled no MasterPage)
  • ClientIDMode="Static" teve que ser removido <%@ Page ... />

Para evitar postbacks, adicione return false ao evento onclick.

button.attribute.add("onclick","return false;");

Amostra:

string PopupURL = Common.GetAppPopupPath() + "Popups/StockChart.aspx?s=" + symbol;
hlLargeChart.Attributes.Add("onclick", String.Format("ShowPopupStdControls(PCStockChartWindow,'{0}');return false;", PopupURL));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top