Je travaille pour l'instant sous un projet 'asp.net mvc 4 web application' en utilisant de l'html, du javascript(JQuery et JQuery Mobile) pour travailler.
Pour vous expliquer la situation, en fait, je possède un tableau en JQuery Mobile qui reprend par ligne un congé(code,date début,date fin) qui fait que quand je clique sur une cellule, cela fait un appel Ajax vers une méthode de mon controleur. Cette méthode fait un appel à ma base de données pour récupérer davantage d'informations sur le congé. Une fois cela, la méthode retourne une partial view qui contient du JQuery Mobile(un tableau avec les données et un bouton OK) pour l'affichage de ma boite de dialogue.
Quand j'atteris dans le OnSuccess de mon appel Ajax, je fais :$("#test") n'est rien d'autres qu'une balise div avec l'id 'test'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $("#test").html(myData) $("#test").dialog({ autoOpen: true, modal: true, resizable: true });
Mon problème est que quand j'appuie sur le bouton ok, la boite de dialogue ne disparait pas. De plus, si je fais un $("#test").dialog("hide"), la boite de dialogue se ferme bien mais quand je clique sur une autre cellule de mon tableau, il n'y a plus de boite de dialogue qui s'affiche.
Pourriez-vous m'aider ?
Merci
Code partiel de ma view :
Code de mon controlleur :
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 function c(){ $('#test').dialog("close"); } $(function () { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify(dataResponse), dataType: "html", url: '@Url.Action("Display", "LeavedList")', success: function (mydata) { alert("hier"); $("#test").html(mydata); $("#test").dialog({ autoOpen: false, modal: true, resizable: true }); $("#test").dialog("open"); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); } }); });
Code de la Partial View :
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 [HttpPost] public ActionResult Display(ContactAbsence absence) { DataAccess bdAccess = DataAccess.GetInstance(); Holidays holiday = bdAccess.getHoliday(absence.ContactID, absence.AbsSeqID, absence.AbsSplitSeqID); ViewBag.Compteur = holiday.Compteur; ViewBag.Begin = holiday.Begin.ToString("dd/MM/yy"); ViewBag.End = holiday.End.ToString("dd/MM/yy"); ViewBag.Notice = holiday.Notice; ViewBag.DayType = holiday.DayType; //return PartialView("~/Views/Shared/HolidayInfoDialog.cshtml"); return View("~/Views/Shared/HolidayInfoDialog.cshtml"); }
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 <div data-role="header" data-theme="b"> <h1>Détails congé</h1> </div> <div data-role="content" class="ui-body"> <div style="color: black;"> <div class="ui-grid-a"> <div class="ui-block-a"> Code : </div> <div class="ui-block-b"> @ViewBag.Compteur </div> <div class="ui-block-a"> Date de début : </div> <div class="ui-block-b"> @ViewBag.Begin </div> <div class="ui-block-a"> Date de fin : </div> <div class="ui-block-b"> @ViewBag.End </div> <div class="ui-block-a"> Remarque : </div> <div class="ui-block-b"> @ViewBag.Notice </div> <div class="ui-block-a"> Type de jour : </div> <div class="ui-block-b"> @ViewBag.DayType </div> </div> </div> <a rel='external' data-role='button' href='#' id='simpleclose' data-theme="b" onclick="c();">Close</a> </div>
Partager