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 Ajax Discussion :

éviter le postback avec un modalpopupextender


Sujet :

ASP.NET Ajax

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Points : 51
    Points
    51
    Par défaut éviter le postback avec un modalpopupextender
    Bonjour,

    Je rencontre un probleme avec un modalpopup extender : je veux provoquer la mise à jour de données de la page qui declenche la modalpopup extender sans recharger la page
    code de la page
    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
     
    <asp:Content ContentPlaceHolderID="ContenuPrincipal"   runat="server" ID="ContenuPageTest">
       <script type="text/javascript">
       function onOk() {
       document.getElementById("btnOk").click();
       }
       </script>
        <asp:ScriptManager ID="smMaPage" runat="server">
        </asp:ScriptManager>
     
          <asp:UpdatePanel ID="upMaPage" runat="server" UpdateMode="Conditional">
          <ContentTemplate>
     
        <div>
      <link rel="stylesheet" type="text/css" href="CssTest.css">
     
            <asp:Button ID="btnSort" runat="server" Text="trier par prix" 
                onclick="btnSort_Click" />
            <asp:Button ID="btnFilter" runat="server" 
                Text="filtrer" />
     
            <table ID="monTableau" runat="server" >
            </table>
     
     
     
            <asp:Panel ID="Panel1" runat="server" style="display:none">
     
                <table>
                    <tr>
                        <td>
                            <asp:RadioButton ID="rbSup" runat="server" GroupName="groupe1" 
     
                                Text="Afficher les produits dont le prix &gt;300 euros" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:RadioButton ID="rbInf" runat="server" GroupName="groupe1" 
     
                                Text="Afficher les produits dont le prix &gt; 200 euros" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:Button ID="btnOk" runat="server" onClick="btnOk_Click" Text="OK" 
                              />
                        </td>
                        <td>
                            <asp:Button ID="btnCancel" runat="server" Text="Cancel" />
                        </td>
                    </tr>
                </table>
     
            </asp:Panel>
     
             <cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
               TargetControlID="btnFilter" 
                 PopupControlID="Panel1" BackgroundCssClass="modalBackground"
              OkControlID="btnOk"  OnOkScript="onOk()"
              CancelControlID="btnCancel"
              >
              </cc1:ModalPopupExtender>
        </div>
     
     
        </ContentTemplate>
       </asp:UpdatePanel>
    </asp:Content>
    voila le code behind
    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
     
    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using TestdotNetDll;
    using System.Data.SqlClient;
    using System.Collections.Generic;
     
    public partial class _Default : System.Web.UI.Page 
    {
        List<Produit> listeProduit = new List<Produit>();
        Categorie c = new Categorie();
     
        protected void Page_Load(object sender, EventArgs e)
        {
                listeProduit = c.GetProducts();
                BuildTable();
     
        }
     
        protected void btnSort_Click(object sender, EventArgs e)
        {
     
            listeProduit.Sort(new ProductPriceComparer());
            BuildTable();
     
        }
     
        protected void btnOk_Click(object sender, EventArgs e)
        {
     
            if (rbSup.Checked)
                listeProduit = c.GetProducts(300);
           if(rbInf.Checked)
                listeProduit = c.GetProducts(200);
     
            listeProduit.Sort(new ProductPriceComparer());
     
            BuildTable();
     
     
        }
     
        protected void BuildTable()
        {
            monTableau.Rows.Clear();
            HtmlTableRow ligneTitre = new HtmlTableRow();
            HtmlTableCell caseTitre1 = new HtmlTableCell();
            HtmlTableCell caseTitre2 = new HtmlTableCell();
            caseTitre1.InnerHtml = "Nom";
            caseTitre2.InnerHtml = "Prix";
            ligneTitre.Cells.Add(caseTitre1);
            ligneTitre.Cells.Add(caseTitre2);
            monTableau.Rows.Add(ligneTitre);
            foreach (Produit p in listeProduit)
            {
                HtmlTableRow Maligne = new HtmlTableRow();
                HtmlTableCell maCase = new HtmlTableCell();
                HtmlTableCell maCase2 = new HtmlTableCell();
                maCase.Width = "50%";
                maCase.InnerHtml = p.Nom;
                maCase2.Width = "50%";
                maCase2.InnerHtml = p.Prix.ToString();
                Maligne.Cells.Add(maCase);
                Maligne.Cells.Add(maCase2);
                monTableau.Rows.Add(Maligne);
            }
     
            upMaPage.Update();
        }
     
     
    }
    la mise à jour se fait bien mais avec un chargement de la page et c'est ce que je veux éviter .

    Merci d'avance

  2. #2
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    tu ne veux pas recharger toute ta page, ok.

    mais je vois que ta zone de page à rafraichir est dans un update panel , donc ajax.

    je ne comprends pas ce que tu veux dep lus, il faut bien rafraichir au minimum la zone de ta page qui change suite à ton action dasn ton modal

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/06/2009, 10h03
  2. Réponses: 0
    Dernier message: 25/02/2009, 14h40
  3. Éviter le max_execution_time avec un timeout?
    Par FrankOVD dans le forum Langage
    Réponses: 3
    Dernier message: 05/02/2009, 17h22
  4. Réponses: 7
    Dernier message: 13/01/2009, 16h59
  5. Réponses: 3
    Dernier message: 07/07/2008, 11h46

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