Bonjour,
Quelques lignes pour demander de l'aide sur l'utilisation du ModalPopupExtender d'ajax.
Après multiple recherche, j'ai bien compris qu'il faut utiliser un update panel, mais ça marche pas très bien. Je n'ai pas trouvé de code complet et je galère depuis plusieurs jours dessus.
Voici ma page aspx :
et mon aspx.vb
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 <head runat="server"> <title></title> <style> .modalBackground { background-color: #000; filter: alpha(opacity=70); opacity: 0.7; } .outerPopup { background-color: #F5EFE3; padding: 1em 6px; } .innerPopup { background-color: #fff; } </style> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="SM" runat="server" EnableHistory="false" ScriptMode="Release" EnablePartialRendering="true" LoadScriptsBeforeUI="true" /> <asp:Button CssClass="btnValid" ID="btnEnregistrer" runat="server" Text="Enregistrer" /> <asp:Panel ID="pnlPopup1" runat="server" CssClass="outerPopup" Style="display: none;"> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Panel ID="pnlInnerPopup1" runat="server" CssClass="innerPopup"> <asp:DropDownList ID="DataList1" runat="server" CssClass="Ctrl" OnSelectedIndexChanged="DataList1_SelectedIndexChanged" AutoPostBack="True"> </asp:DropDownList> <asp:Button ID="btnSupprPanType" runat="server" CssClass="btnValid" Text="Supprimer" /> <br /> <br /> <asp:HiddenField ID="hdfIdPanType" runat="server" /> <asp:TextBox ID="txtNomPanierType" runat="server" CssClass="Ctrl"> </asp:TextBox> <asp:RadioButtonList ID="RdlstLevel" runat="server" CssClass="Ctrl" RepeatDirection="Horizontal"> </asp:RadioButtonList> <br /> <asp:Button ID="btnValider" runat="server" CssClass="btnValid" Text="Enregistrer" /> <asp:Button CssClass="btnValid" ID="btnAnnuler" runat="server" Text="Annuler" /> </asp:Panel> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="DataList1" EventName="SelectedIndexChanged" /> </Triggers> </asp:UpdatePanel> </asp:Panel> <cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnEnregistrer" PopupControlID="pnlPopup1" OkControlID="btnValider" CancelControlID="btnAnnuler" BackgroundCssClass="modalBackground" /> </form> </body>
l'utilisation de la liste se déclenche bien.
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 Imports System.Data Partial Class TESTS_ModalPopup Inherits System.Web.UI.Page Dim PanType As MOS.DAL.PanierTypeEntete = Nothing Dim shp As MOS.DAL.Shopper = Nothing Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load shp = New MOS.DAL.Shopper(New Guid("1A05098A-7741-4CD8-894A-00A8F1419714"), True) If Not Page.IsPostBack Then 'Enregistrement panier type RemplirLstPanierType() ChangePanType() 'Remplir les niveaux If RdlstLevel.Items.Count = 0 Then RemplirLstLevel() End If End Sub ''' <summary> ''' Remplir la liste des paniers type ''' </summary> ''' <remarks></remarks> Private Sub RemplirLstPanierType() Dim dtv As DataView = shp.GetPanierTypeShopper.Tables(0).DefaultView Dim MaLigne As DataRow = dtv.AddNew().Row MaLigne(0) = Guid.Empty MaLigne(1) = "Nouveau" dtv.Table.Rows.InsertAt(MaLigne, 0) DataList1.DataSource = dtv DataList1.DataValueField = MOS.DAL.PanierTypeEntete.Champs.ID DataList1.DataTextField = MOS.DAL.PanierTypeEntete.Champs.Libelle DataList1.SelectedIndex = 0 DataList1.DataBind() End Sub Protected Sub DataList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) ChangePanType() End Sub Private Sub ChangePanType() If DataList1.SelectedValue = Guid.Empty.ToString Then txtNomPanierType.Text = "Cmd type du " & Now PanType = New MOS.DAL.PanierTypeEntete(Guid.NewGuid, True) RdlstLevel.SelectedValue = "0" PanType.DateCreation = Now hdfIdPanType.Value = PanType.ID.ToString btnSupprPanType.Visible = False Else txtNomPanierType.Text = DataList1.SelectedItem.Text hdfIdPanType.Value = DataList1.SelectedValue PanType = CType(Helper.GetObjectFromCache(hdfIdPanType.Value), MOS.DAL.PanierTypeEntete) If PanType Is Nothing Then PanType = New MOS.DAL.PanierTypeEntete(New Guid(DataList1.SelectedValue), True) If PanType.IDSite > 0 Then RdlstLevel.SelectedValue = "2" ElseIf PanType.IDSociete > 0 Then RdlstLevel.SelectedValue = "1" Else RdlstLevel.SelectedValue = "0" End If btnSupprPanType.Visible = True End If PanType.DateDerniereUtilisation = Now PanType.DateModification = Now Helper.SetObjectToCache(hdfIdPanType.Value, PanType, True, False, False) End Sub Private Sub RemplirLstLevel() RdlstLevel.Items.Add(New ListItem(shp.NomComplet, "0")) If shp.EstAdminSociete(-1) Then RdlstLevel.Items.Add(New ListItem(shp.Societe().Libelle, "1")) ElseIf shp.EstAdminSite(-1) Then RdlstLevel.Items.Add(New ListItem(shp.Societe().Libelle, "1")) RdlstLevel.Items.Add(New ListItem(shp.Site().Libelle, "2")) Else RdlstLevel.Visible = False End If RdlstLevel.DataBind() End Sub End Class
Mon panel reste visible lors de l'utilisation de la liste mais dès j'y touche les boutons btnValider et btnAnnuler n'ont plus aucun effet. Mon panel reste toujours visible. Par contre si je ne touche pas à la liste, ces boutons fonctionnent bien.
Erreur subsidiaire : quand je fait F5 j'ai une erreur sur un _event à null !!
Quelqu'un pourrait m'aider à corriger mon code, ou donner un exemple qui marche svp
Merci.
Partager