Question

J'ai une vue en grille qui se trouve dans un panneau de mise à jour pour une fenêtre contextuelle modale que j'ai sur une page.
Le problème est que la page entière s'actualise chaque fois que je clique sur un bouton d'image qui se trouve dans ma vue en grille.Cela provoque le chargement de toute ma page et comme j'ai grisé le reste de la page pour que l'utilisateur ne puisse pas cliquer dessus, c'est très ennuyeux.

Est-ce que quelqu'un sait ce qui me manque.

Modifier: J'ai entré une meilleure solution en bas

Était-ce utile?

La solution 5

Quelques mois plus tard, ce problème a été résolu.Le projet sur lequel je travaillais était une précédente v1.1 qui a été convertie en 2.0.Cependant, dans le web.config, cette ligne est restée :

<xhtmlConformance mode="Legacy"/>

Lorsqu'il a été commenté, tous les bugs que nous semblions avoir avec la boîte à outils de contrôle ajax ont disparu

Autres conseils

Assurez-vous que les éléments suivants sont définis sur UpdatePanel :ChildrenAsTriggers=false et UpdateMode=Conditional

avez-vous ChildrenAsTriggers="false" sur UpdatePanel ?

Y a-t-il des erreurs javascript sur la page ?

J'ai eu ce problème et suis tombé sur l'article suivant :

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

Mon bouton n'a pas été créé dynamiquement dans le code comme dans cet exemple, mais lorsque j'ai vérifié le code dans l'aspx, il manquait une propriété ID.Lors de l'ajout de l'ID, la publication est devenue asynchrone et a commencé à se comporter comme prévu.

Donc, en résumé, vérifiez que votre bouton a un identifiant !

Testez-vous sous Firefox ou IE ?Nous avons un problème similaire où la page entière est actualisée dans Firefox (mais pas dans IE).Pour le contourner, nous utilisons un asp:button caché avec l'ensemble useSubmitBehavior="false".

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

La fenêtre modale s'affiche-t-elle à l'aide de la fenêtre modale IE ?Ou est-ce un DIV que vous montrez ?

S'il s'agit d'une fenêtre contextuelle modale IE, vous devez vous assurer que vous avez

   <base target="_self" /> 

Pour vous assurer que les messages renvoyés sont sur la page modale.

S'il s'agit d'un DIV, assurez-vous que votre XHTML est correct, sinon il se peut qu'il ne sache pas quoi mettre à jour.

Je laisserais le onClick et le définirais comme déclencheur du updatePanel.

C'est étrange que cela fonctionne dans FF et non dans IE.C’est à l’opposé du comportement que nous vivons.

UpdatePanels peut être sensible au HTML mal formé.Faites un View Source à partir de votre navigateur et exécutez-le via quelque chose comme le validateur W3C pour rechercher quelque chose de bizarre (un div ou une table non fermée étant les suspects habituels)

Si vous utilisez Firefox, une extension/un module complémentaire de validateur HTML est disponible qui fonctionne très bien.

Pour référence..

J'ai également remarqué, lors de l'utilisation du redoutable <asp:UpdatePanel ... /> et <asp:LinkButton ... />, cela ainsi que UpdateMode="Conditional" sur le UpdatePanel les autres modifications suivantes sont requises :

  • ViewStateMode="Enabled" est requis sur <asp:Content ... /> (je l'ai réglé sur Disabled dans le MasterPage)
  • ClientIDMode="Static" a dû être retiré de <%@ Page ... />

Pour éviter les publications, ajoutez return false à l'événement onclick.

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

Échantillon:

string PopupURL = Common.GetAppPopupPath() + "Popups/StockChart.aspx?s=" + symbol;
hlLargeChart.Attributes.Add("onclick", String.Format("ShowPopupStdControls(PCStockChartWindow,'{0}');return false;", PopupURL));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top