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 :

Comment organiser mes validations ?


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut Comment organiser mes validations ?
    Bonjour,

    En premier lieu, désolé pour le titre hautement imprécis de cette discussion, je n'ai pas trouvé mieux...

    Mon problème est le suivant :
    - je dispose d'une page ASP.NET avec un certains nombres de champs à saisir, et un bouton "Lancer la génération"
    - Lors du clic sur "Lancer la génération", une requête SQL est construite (C#) en fonction des valeurs saisies dans les divers champs, puis exécutée. Le résultat est ensuite envoyé dans une feuille excel.

    Le problème est que dans certains cas, la requête ramène plusieurs milliers de lignes, et le temps d'exécution est long.

    Je souhaiterais donc mettre en place le cycle de validation suivant :
    - lors du clic sur "Lancer la génération", on lance la même requête, mais avec un count, pour savoir combien de lignes seront retournées.
    - au-delà d'un certain seuil, par exemple 1000 lignes, l'utilisateur reçoit un message sous forme de popup "Attention : les critères saisis génèrent un nombre de ligne important. La génération pourra prendre plusieurs minutes. Voulez-vous poursuivre ? //Boutons : Oui / Non"
    - Oui => On poursuit par l'appel d'une fonction C#
    - Non => Retour au formulaire

    La piste du CustomValidator me semblait intéressante, mais :
    1/ Elle ne retourne qu'un message, pas moyen d'avoir des boutons Oui / Non
    2/ J'ai déjà un autre ValidationGroup lié à mon bouton

    Comment me conseillez-vous de réaliser ce contrôle, qui va naviguer entre le poste client et le serveur web ? Ajax ? J'imagine que je suis loin d'être le premier à vouloir résoudre ce genre de problématique...

    Merci d'avance pour vos indications

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 85
    Par défaut
    Regarde du côté des LightBox, ça devrait répondre à ton besoin

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Si je dis LightBox à google, il me répond :
    a simple, unobtrusive script used to overlay images on the current page.
    Je pense que ca n'est pas ca dont tu parles
    Un petit lien ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 85
    Par défaut
    Je vais essayer de te retrouver le lien que j'avais car ça remonte un peu.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Ok merci ! Et en développant un peu, ça consiste en quoi dans les grandes lignes ? C'est du JS ? C# ? ASP ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 85
    Par défaut
    En gros c'est comme une MessageBox dont le contenu est une page aspx

    EDIT : Voici un exemple : http://jquery.com/demo/thickbox/

    Regarde les 2 derniers exemples d'utilisation.

    Ce n'est pas ce que j'avais utilisé (et malheureusement je ne le retrouve pas) mais l'idée est là.

    Un autre exemple : http://www.mathertel.de/AJAXEngine/S...htboxdemo.aspx

  7. #7
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    Comme tu le pensais: effectue une premier fois le count de ta requête via un customValidator par exemple.

    Affiche ensuite selon le nombre de ligne un message d'avertissement html (alert, messageBox, divFottant, en jquery ou js au choix...).

    Puis si l'utilisateur a validé lance le vrai traitement via un postback.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 85
    Par défaut
    Citation Envoyé par mermich Voir le message
    Salut,

    Comme tu le pensais: effectue une premier fois le count de ta requête via un customValidator par exemple.
    Je ne voie pas dutout où est l'interet d'utiliser un Validator ici

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    @rori : merci, je vais regarder ça

    @mermich : Comment afficher le résultat du count dans une fenêtre JS (je crois qu'il y a une fenêtre toute faite en JS qui affiche un message avec deux boutons genre Continue et Cancel) ? C'est ça que je ne sais pas faire : afficher le résultat d'une fonction C# sur le poste client. C'est peut-être une question bête, mais je ne suis pas très expérimenté en C#...
    J'ai du mal à naviguer entre les 2 langages C# et JS

  10. #10
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    @rori: moi non plus mais il était parti sur des customValidators (d'un certain coté le traitement sert à valider que la saisie de l'utilisateur est bien valide; d'un autre plus terre-à-terre ce n'est pas le but d'un validator).

    @nox75: avant de te lancer dans du js, réfléchi à ce que tu veux afficher:


    Dans tous les cas il te faudra passer des informations depuis ton code server au javascript. Pour cela tu peux utiliser les hiddenField par exemple:
    http://dotnet.itags.org/dotnet-tech/210266/
    (en gors lors de ton traitement server tu mets les résultat dans ton hiddenfield, puis en js tu affiche la veleur contenue dedans.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Yep, j'avais pensé aux Hiddenfield, mais du coup ca nécessite un postback, non ?
    En tout cas vous êtes d'accord sur un point : les thickbox Donc je vous remercie, je vais essayer de me débrouiller avec vos indications, et je vous tiens informés !

  12. #12
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Yep, j'avais pensé aux Hiddenfield, mais du coup ca nécessite un postback, non ?
    oui: il y aura un postback, sinon comment veux-tu savoir le nombre de lignes retournées ?

    Afin d'éviter le postback il existe des solution ajax, updatePanel, mais qui requièrent plus de temps à mettre en place la première fois.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Voilà comment je m'en suis sorti :

    Lors du clic sur le bouton "Lancer la génération", je fais mon count en C# pour connaître le nombre de lignes renvoyées. Si le count est supérieur au seuil défini, je fais un RegisterClientScript pour ajouter un script JS qui va se déclencher à la fin du chargement, et qui va lancer le confirm.
    J'ai ajouté un champ caché, et dans la fonction JS, si l'utilisateur confirme, je fais un HiddenBtn.click(), et sur cette fonction, je lance mon export.

    Voilou

    Merci pour vos aides divers. Je n'ai pas utilisé les Thickbox finalement, car d'après le site que vous avez indiqué, elles ne sont plus maintenues. J'ai vu par contre beaucoup d'autres choses intéressantes, et j'ai gardé le lien en favori.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/05/2015, 15h41
  2. [MySQL] Comment organiser mes tables ?
    Par gastoncs dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 17/07/2013, 13h12
  3. Comment organiser mes bases de données ?
    Par Dextair dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 17/02/2011, 15h17
  4. [VB.Net 2.0] Comment organiser mes classes ?
    Par arno2000 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 26/06/2006, 15h28
  5. Comment organiser mes partitions
    Par Celelibi dans le forum Administration système
    Réponses: 8
    Dernier message: 14/11/2005, 10h09

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