A página inteira é atualizada mesmo que o gridview esteja em um painel de atualização
-
09-06-2019 - |
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
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:
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 paraDisabled
noMasterPage
)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));