IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Récupérer le Postback d'un ModalPopupExtender


Sujet :

ASP.NET

  1. #1
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut Récupérer le Postback d'un ModalPopupExtender
    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.

  2. #2
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut Conclusion
    dans la page .aspx
    En fait je n'utilise plus le trigger...
    mais dans mes boutons de ma modalPopup j'associe une fonction sur l'evt clic

    Dans la page .vb
    mes bouton gère eux meme la fermeture de la modal : modal.hide

    Dans certains cas, j'utilise aussi un bouton en style:hidden lier à l'ouverture de la modalpopup. L'astuce pour l'ouvrir consiste à mettre dans la fonction dans la page .vb de mettre Modal.show quand vous le désirer (par exemple sur changement dans une liste, ou sur clic d'un bouton dans un répéteur ...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. éviter le postback avec un modalpopupextender
    Par hachdotnet dans le forum ASP.NET Ajax
    Réponses: 1
    Dernier message: 22/06/2010, 15h48
  2. Postback d'un ModalPopupExtender
    Par Marc_27 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 13/01/2010, 10h41
  3. Réponses: 2
    Dernier message: 19/06/2009, 14h37
  4. Postback dans ModalPopupExtender [ASP.NET 2.0][C#]
    Par chti_vince dans le forum ASP.NET
    Réponses: 3
    Dernier message: 14/05/2009, 12h56
  5. Réponses: 2
    Dernier message: 19/04/2005, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo