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 :
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>
                    &nbsp;
                    <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>
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
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
l'utilisation de la liste se déclenche bien.
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.