Bonjour,

Je suis actuellement en train de travailler sur un bureau virtuel type iGoogle et je rencontre un bug présent sous IE (version 7) mais pas sous Firefox.

Je précise que je travaille en ASP.NET.

J'ai donc des CollapsiblePanel sur ma page. Lorsque l'utilisateur déplie ou replie les CollapsiblePanel, les paramètres de visibilité doivent être modifié dans ma base de données SQL Server afin que, lorsqu'il se reconnecte au bureau, il le retrouve dans l'état où il l'avait laissé.

Pour se faire, j'appelle une fonction javascript lors du clic qui, grâce à l'objet XmlHttpRequest, appelle un fichier *.aspx et ce fichier réalise l'update.

Voici le code JS :

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
40
41
42
43
44
45
46
function creeXMLHttpRequest()
{
	var req = null;
	try	{
		req = new ActiveXObject('Microsoft.XMLHTTP');
 
	}
	catch(Error){
		try{
			req = new ActiveXObject('MSXML2.XMLHTTP');
		}
		catch(Error){
			try{
				req = new XMLHttpRequest();
			}
			catch(Error){
				alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...');
			}
		}
	}
	return req;
}
 
function save(id_emp, id_ws)
{
   var xhr = creeXMLHttpRequest(); 
   var test = "";
   xhr.open('GET','save-param-bureau.aspx?id_emp='+id_emp+'&id_ws='+id_ws,true); // ouverture de la connexion
 
    xhr.onreadystatechange = function()
    {
        if(xhr.readyState == 1)
            test += "1";
        else if(xhr.readyState == 2)
            test += "2";
        else if(xhr.readyState == 3)
            test += "3";
        else if(xhr.readyState == 4 && xhr.status == 200)
        {
            alert(test + "4");
            alert(xhr.responseText);
        }
    }    
 
   xhr.send(null);
}
Note : les alert() ne sont là que pour faire des tests.

Mon problème :

Lorsque j'ouvre pour la première fois ma page et que je déplie ou replie un CollapsiblePanel, cela marche parfaitement. Néanmoins, si je fais l'opération inverse, l'update dans la BDD ne se fait plus. J'en ai conclue que l'ouverture du fichier *.aspx n'était plus effectuée car les MsgBox() qu'il contient ne sont plus exécutées. Mais le plus étrange, c'est qu'un seul des CollapsiblePanel de ma page continue de faire les updates.

Avez-vous une idée d'où le problème pourrait venir ? Voulez-vous que je mette mon code ASP.NET ?

Merci d'avance pour l'aide.