Bonjour,
J'ai un controle Ajax "UpdateProgress" sur ma Master Page.
Sur une de mes pages, j'ai un control DataGridView "customisé". Je l'inclus dans un UpdatePanel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <asp:UpdateProgress ID="cLoadingIndicator" runat="server" DisplayAfter="100" DynamicLayout="true"> <ProgressTemplate> <asp:Image ID="Image1" runat="server" ImageUrl="~/images/animated_loading.gif" /> <span>Traitement en cours...</span> </ProgressTemplate> </asp:UpdateProgress>
Problème... En réalisant un "Sort" sur une des colonnes de la Datagrid, une erreur javascript est déclanchée, le sort est réalisé... mais... l'UpdateProgress continue à tourner comme si l'action continuait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <asp:UpdatePanel ID="upPanel1" runat="server" ChildrenAsTriggers="true" RenderMode="Inline" UpdateMode="always"> <ContentTemplate> <div id="printBox"> <asp:MultiView ID="MultiView1" runat="server" EnableViewState="true"> <asp:View ID="gridView" runat="server"> <div id="tabDiv"> <cc1:DataGridViewControl ID="gridControl" runat="server" PageSize="15" /> </div> </asp:View> <asp:View ...</asp:View> </ContentTemplate> </asp:UpdatePanel>
Je pense que ce bug vient de cette erreur javascript: Erreur: Argument non valide.
En faisant le debug, cela donne une erreur : 'htmlfile: Argument non valide' sur la partie de code suivante:
Sur la partie souligné, l'id est nul. en fait, c'est l'id de l'élément javascript "{javascript:__doPostBack('ctl00$DataZonePlaceholder$__Page_DataViewer$gridControl$gridControl_GridView','Sort$IndexesImpulsions_C02')}" qui a un id null...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 var $get = Sys.UI.DomElement.getElementById = function Sys$UI$DomElement$getElementById(id, element) { /// <param name="id" type="String"></param> /// <param name="element" domElement="true" optional="true" mayBeNull="true"></param> /// <returns domElement="true" mayBeNull="true"></returns> var e = Function._validateParams(arguments, [ {name: "id", type: String}, {name: "element", mayBeNull: true, domElement: true, optional: true} ]); if (e) throw e; if (!element) return document.getElementById(id); if (element.getElementById) return element.getElementById(id); var nodeQueue = []; var childNodes = element.childNodes; for (var i = 0; i < childNodes.length; i++) { var node = childNodes[i]; if (node.nodeType == 1) { nodeQueue[nodeQueue.length] = node; } } while (nodeQueue.length) { node = nodeQueue.shift(); if (node.id == id) { return node; } childNodes = node.childNodes; for (i = 0; i < childNodes.length; i++) { node = childNodes[i]; if (node.nodeType == 1) { nodeQueue[nodeQueue.length] = node; } } } return null; }
PLEASE SOME!
(je sais, c'est compliqué)
Partager