Bonjour,

J'ai un controle Ajax "UpdateProgress" sur ma Master Page.

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>
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
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>
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.

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:

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;
}
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...

PLEASE SOME !

(je sais, c'est compliqué )