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 :

Fonctionnement du updateProgress


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Fonctionnement du updateProgress
    Bonjour tout le monde

    J'ai mis en place un updateProgress dans mon composant pour afficher un petit gif qui tourne. ça marche bien.

    Maintenant je voudrais faire du "un peu plus sexy". Sauf que je lis et relis la doc (en anglais, premier problème) sur le site AJAX.NET et je ne trouve pas comment faire :
    - l'image se place sur la DropDownList (voir mon code en fin de topic). Pour l'instant elle se place en dessous, tout simplement. J'ai bine pensé à mettre le tout dans un DIV et jouer avec les positions, mais est ce bien la bonne solution ?
    - faire en sorte que, pendant le dfilement de l'image, la DDL ne soit pas accessible par l'utilisateur. J'ai vu sur certains sites un passage en grisé des éléments de formualires pendant ce "Wait" et j'arrive pas à toruver comment c'est fait.

    Merci pour votre aide.
    Voici mon code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <ajax:UpdatePanel ID="upColor" runat="server" ChildrenAsTriggers="true">
    <ContentTemplate>
        <Color:ColorDropDownList ID="colorlst" runat="server" CausesValidation="true" AutoPostBack="true" ></Color:ColorDropDownList>    
        <asp:Label ID="lblColor" runat="server" Width="50"></asp:Label>
    </ContentTemplate>
    </ajax:UpdatePanel>
    <ajax:UpdateProgress ID="upProg" runat="server" AssociatedUpdatePanelID="upColor">
        <ProgressTemplate>
            <asp:Image ID="imgWait" runat="server" ImageUrl="~/App_Themes/wait.gif" />
        </ProgressTemplate>
    </ajax:UpdateProgress>

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Voilà comment je cache le bouton pendant le traitement
    A toi d'adapter

    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
     
    <script type="text/javascript" language="javascript">
        // On rajoute une fonction qui s'exécutera à toutes les initialisations de requête Ajax
        Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequestHandlerResult);
     
        // On rajoute une fonction qui s'exécutera à tous les retours de requête Ajax
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandlerResult);
     
        function InitializeRequestHandlerResult(sender, args)
        {
            // Si partialPostBack déclenché par le bouton btnCompute
            if(sender._postBackSettings.sourceElement.id == '<%= btnCompute.ClientID %>')
            {
                //On masque le bouton
                $get('<%= btnCompute.ClientID %>').style.visibility = 'hidden';
     
                return true;
            }
        }
     
        function EndRequestHandlerResult(sender, args)
        {
            if(sender._postBackSettings.sourceElement.id == '<%=  btnCompute.ClientID %>')
            {
                //On affiche le bouton
                $get('<%= btnCompute.ClientID %>').style.visibility = 'visible';
     
                return true;
            }
        }
    </script>

  3. #3
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Salut Zooffy,

    regarde par , il semble qu'un peu de CSS suffise.

    Sinon, cherche ModalUpdateProgress sur CodeProject, il me semble me rappeller d'un projet qui faisait ce que tu souhaites.

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci les copains.

    @ lutecfalco : vachement bien ton code, je le garde pour une autre utilisation. Dans mon cas, ça marche pas comme je le voudrais. Je voulais juste mettre un truc par dessus mon composant utilisateur, pas juste sur la DDL ni même la faire disparaitre.

    Mais je garde le code pour d'autre utilisation, merci.

    @ calagan99 : ModalUpdateProgress fait, en gros, la même chose que ton lien. Mais je trouve ton lien plus simple à mettre en place. Au départ j'ai été surpris de voir tout la page plongée dans le noir et aprés réflexion, je me dis que c'est pas plus mal.
    Faut que je bidouille le CSS pour arriver à placer le Div noir circonscrit dans le Composant lui même et pas sur toute la page, mais ça me fera une occasion d'aller voir les copains du forum CSS. J'y arrive jamais avec les Position et pas d'esprit mal tourné, hein ? !

    En grand merci les gars.

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Garde en effet le post de LuteceFalco quelque part car l'objet PageRequestManager est très très utile dés lors que tu commences à vouloir un peu sortir des clous de l'utilisation basique de l'UpdatePanel.

    Pour ce qui est de la solution que je te propose, juste une petite remarque, il ne me semble pas que cela empêche le clic sur les éléments de ta page, ça ne fait qu'en donner l'impression.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 10/05/2010, 13h52
  2. Réponses: 5
    Dernier message: 14/05/2003, 14h51
  3. [Turbo Pascal] TP7 fonctionne en QWERTY
    Par callahan dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 08/02/2003, 21h49
  4. Prb de fonctionnement dans SaveDialog avecInitialDir
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/12/2002, 21h46
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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