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 :

JQuery: postback éventuel sur RadioButtonList


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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
    Par défaut JQuery: postback éventuel sur RadioButtonList
    Bonjour,

    lorsque je mets une confirmation (jconfirm) sur un bouton, je peux suivant la réponse/conditions provoque ou non le postback du bouton comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $("#<%=submitButton.ClientID%>").click(function() {
                if ( $("#<%=mylabel.ClientID%>").val() != "" ) {
                    jConfirm($("#<%=javamsgtxt.ClientID%>").val() , $("#<%=javamsgtitle.ClientID%>").val(), function(r) {
                        if (r == true) {
                        var btnName = $get("<%=submitButton.ClientID%>").name;
                        __doPostBack(btnName,"");
                        }
                    });
                } else {
                    jAlert($("#<%=javamsgerror.ClientID%>").val(), $("#<%=javamsgerrortitle.ClientID%>").val());
                }       
                return false;
              });
    ce qui par exemple, vérifie que mon label est rempli.
    si oui, provoque le postback du bouton
    si non, dans ce cas-ci affiche un jAlert mais pourrais ne rien faire.
    Ça fonctionne très bien!

    je désires faire le même genre de chose mais sur le changement de sélection sur une RadioButtonList et plus sur un bouton.

    j'ai ceci:

    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
    $("#<%=myRBL.ClientID%>").change(function() {
     
                if ( $("input[name='<%=myRBL.UniqueID%>']:radio:checked").val() == "never" ) {
     
                    jConfirm($("#<%=javamsgtxt.ClientID%>").val() , $("#<%=javamsgtitle.ClientID%>").val(), function(r) {
                        if (r == true) {
                        var btnName = $get("<%=myRBL.ClientID%>").name;
                        __doPostBack(btnName,"");
                        }
                    });
                }
                else
                {
                    var btnName = $get("<%=myRBL.ClientID%>").name;
                    __doPostBack(btnName,"");
                } 
     
                return false;
              });
    le comportement désiré est que, si la sélection dans la RadioButtonList se porte sur la valeur "never", on demande une confirmation pour exécuter réellement le changement.
    La sélection de toute autre valeur exécute simplement le changement.

    Si la RadioButtonList est en autopostback, le postback se fait quoi qu'il arrive, j'ai le temps de voir apparaître mon JConfirm si la sélection est "never" mais le postback se fait de toute façon.
    Si la RadioButtonList n'est pas en autopostback, le changement de sélection ne provoque rien côté serveur. J'ai par contre dans ce cas là le JConfirm qui attends ma réponse.

    Comment gérer cela?

  2. #2
    Membre émérite
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Par défaut
    Je vais peut être pas proposer la meilleur solution mais c'est une solution qui fonctionne.
    Il n'y a pas le JAlert mais ça ne change pas beaucoup le code...

    Je crée un asp:Button en display:none avec un évenement de click et j’appelle le click du button en JQuery.
    Il faut bien mettre le button en display:none et non en Visible="fase" !


    Le Css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .hidden {
        display:none;
    }
    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
    <asp:RadioButtonList runat="server" ID="rbl" ClientIDMode="Static">
            <asp:ListItem Text="Text1" Value="Value1" />
            <asp:ListItem Text="Text2" Value="Value2" />
            <asp:ListItem Text="Text3" Value="Value3" />
        </asp:RadioButtonList>
     
        <asp:Button ID="btGo" CssClass="hidden" runat="server" ClientIDMode="Static" OnClick="btGo_Click" />
        <script type="text/javascript">
            $(document).ready(function () {
                $("#<%= rbl.ClientID %>").change(function () {
                    if ($("#<%= rbl.ClientID %> input[type='radio']:checked").val() == "Value2") {
                        $("#<%= btGo.ClientID %>").click();
                    }
                });
            });
        </script>
    Code Behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void btGo_Click(object sender, EventArgs e)
            {
                var rblValue = rbl.SelectedValue;
            }

  3. #3
    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
    Par défaut
    effectivement c'est une piste.

    je suis parti sur une solution différente ou j'appelle une fonction de vérification sur un "onclick" sur le listitem voulu (et j'arrive alors à récupérer l'élément pour lancer un __dopostback en cas de confirmation au JConfirm.
    c'est moins propre mais bon.

    mais si quelqu'un peut nous dire comment le faire proprement en jquery pur...

Discussions similaires

  1. Bugs jQuery - Horizontal Accordion sur Firefox
    Par tyler94 dans le forum jQuery
    Réponses: 10
    Dernier message: 04/04/2009, 10h38
  2. Réponses: 2
    Dernier message: 26/03/2009, 10h21
  3. [jQuery] fadeIn/out sur un add/removeClass
    Par Spir dans le forum jQuery
    Réponses: 2
    Dernier message: 08/10/2008, 09h58
  4. Réponses: 5
    Dernier message: 13/09/2008, 11h49

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