Bonjour, je voudrais fermer une fenêtre après des traitements dans la première.
Ma première fenêtre qui s'ouvre est en fait une fenêtre d'attente, qui affiche un gif animé.
Elle contient un javascript qui redirige vers une autre page aspx:
Page A:
Ma fenêtre s'ouvre, ensuite, dans ma seconde fenêtre, page B, j'effectue des traitements dans une page asynchrone (requêtes, etc...). A la fin des traitements, je voudrais fermer la page A, qui signifierait l'arrête du chargement. J'ai essayé de l'atteindre avec opener, mais rien n'y fait.
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 /// <summary> /// Chargement de la page /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { this.ImageLoading.Visible = true; string location = this.Page.ResolveClientUrl("PageB.aspx"); string script = string.Format("window.location = '{0}';",location); this.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "OpenPageB", script, true); }
Page B:
Je voudrais donc fermer la page A à la fin des traitements de la page B.
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 /// <summary> /// Chargement de la page /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { PageAsyncTask asyncPage = new PageAsyncTask(new BeginEventHandler(BeginGetAsyncData), new EndEventHandler(EndGetAsyncData), new EndEventHandler(TimeoutGetAsyncData), "asyncTask", true); this.Page.RegisterAsyncTask(asyncPage); } /// <summary> /// /// </summary> /// <param name="src"></param> /// <param name="args"></param> /// <param name="cb"></param> /// <param name="state"></param> /// <returns></returns> IAsyncResult BeginGetAsyncData(Object src, EventArgs args, AsyncCallback cb, Object state) { //traitements... } /// <summary> /// Timeout /// </summary> /// <param name="ar"></param> void TimeoutGetAsyncData(IAsyncResult ar) { return; } /// <summary> /// EndAsync /// </summary> /// <param name="ar"></param> void EndGetAsyncData(IAsyncResult ar) { //Opener:PageA StringBuilder sbScript = new StringBuilder("opener.focus();"); sbScript.Append("opener.location.href = opener.location;"); sbScript.Append("opener.close();"); this.Page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "close", sbScript.ToString(), true); Response.Clear(); Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("Content-disposition", "inline; filename=report.xls"); //Traitements pour génération Excel... Response.End(); }
Merci de votre aide.
Partager