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 :

Grille de saisie


Sujet :

ASP.NET

  1. #1
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut Grille de saisie
    Salut à tous,

    Encore newbie en ASP.Net, je butte sur un problème.

    Je souhaiterais créer une page avec une grille vide pour que l'utilisateur puisse saisir des données.
    C'est l'utilisateur qui ajouterais les lignes au fur et à mesure.
    Une ligne serait composée ainsi : Une colonne de saisie de la référence avec une dropdown (ou liste) qui permettrait de faire de l'autocomplétion/suggestion et éventuellement avec contrôle de l’existence de la saisie, une série de colonne reprenant les données connues de la référence saisie et permettant leur modification.
    La page comporterait un bouton permettant l’enregistrement de toutes les lignes saisies dans la grille dans une bdd.

    Déjà premier point, Gridview ou DataGrid ?
    Ensuite, je ne déjà pas si c'est possible, réaliste, et je ne sais vraiment pas comment commencer.

    Conseils, suggestion ?


    PS : Petite subtilité la bdd étant d'un format propriétaire extrêmement lent, seul l'enregistrement se ferait dessus. Le remplissage de la dropdown, et le chargement des données de la référence saisie se ferait à partir d'une table temporaire sur SQLServer rechargée toutes les nuits avec les données de la bdd principale.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Pas sur d'avoir tout compris... Pourquoi ne pas faire un formulaire tout simplement?

    De plus les GridView ou DataGrid ne sont pas prévues pour modifier plusieurs enregistrements en même temps. C'est plus sûr en cas de problème.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Ma grille ne sert, ici, qu'à afficher sous forme de tableau les données saisies mais pas encore enregistrées à l'image d'un vulgaire tableau Excel.
    La totalité de la grille est ensuite transmise au serveur pour un traitement et enregistrement de chaque ligne dans la base de données. Hors processus de traitement géré par du code, il n'y a aucun lien entre ma page et la base de données.

    Je pensais pouvoir saisir les nouvelles lignes directement dans la grille comme on peut le faire en winform, et que ce soit géré coté client pour limiter les aller-retour entre client et serveur.


    Pour le moment, j'ai fait ma page avec un petit formulaire de saisie qui reste ancré en bas de page et un bouton pour ajouter la saisie dans la grille. C'est pas bien beau, mais ça semble vouloir marcher pour quelques saisies (je n'ai pas encore fait la partie enregistrement). J'aurais préféré pouvoir saisir directement dans la grille, ça me semble plus intuitif, mais bon...

    Le problème est que je gère l'ajout dans la grille par l'intermédiaire d'une Datatable en variable de session. Vu que ma session est à priori gérée par cookies, j'imagine que la datatable fait l'aller-retour à chaque ajout. Je sais pas ce que ça va donner lorsque la grille aura plusieurs dizaines de lignes.


    Théoriquement, je ne devrais pas avoir besoin de ces aller-retour. La saisie et le remplissage de la grille (soit directement dans la grille, soit via un formulaire) devrait pouvoir se faire coté client, et de ne transmettre la grille qu'une seule fois quand elle est pleine pour traitement et enregistrement.
    Je ne sais pas si c'est possible. Peut-être en Ajax/Javascript, mais comme je ne connais pas du tout, je n'en sais rien.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Je pensais pouvoir saisir les nouvelles lignes directement dans la grille comme on peut le faire en winform, et que ce soit géré coté client pour limiter les aller-retour entre client et serveur.
    En web cela ne fonctionne pas du tout comme cela. Un navigateur n'a que des autorisations très limitées et ne peut pas stocker d'informations localement.

    Par contre, j'imagine que cela doit être possible de générer les champs via un javascript et d'envoyer le tout une une seule requête. Pour cela, je me dit qu'il faut utiliser des champ html standard et par des contrôles serveur. une fois que tu POST le formulaire tu peux utiliser la collection Request.Form.

    Cependant, je te déconseille de procéder ainsi. Il n'y a rien de plus pénible pour un internaute de constater que ses données non pas été sauvegardées au fur et à mesure. Si cela lui prend 5 minutes pour remplir ses données et que pour quelque raison que ce soit une erreur se produit il va râler. Surtout si tu les stock en session. La durée de vie d'une session est par défaut 20 minutes. 5 minutes pour remplir 10 minutes de bavardage et 10 minutes de café. L'opérateur aura l'impression d'avoir sauvegardé alors que non...

    Commence par faire un formulaire standard et ensuite tu pourras ajouter de l'AJAX. Cela donnera à l'internaute le même look and feel que sur un Winform.
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    ok, je vais voir ce que je peux faire. Tout ça pour une page qui sera utilisée 5 à 6 jours, une fois par an environ.

    Traiter et Enregistrer en direct est un peu gênant. Je passe par un driver ODBC qui est extrêmement lent. Une requete d'un seul update prend environ 35-40 sec (rechargement de la page web coté client) alors qu'avec les tests que j'ai fait, une seule requete contenant 25 à 30 update en rafale ne prend guère plus de 55 sec (le traitement préalable est quasi imperceptible).

    C'est pour cela que je ne partais pas sur un enregistrement direct, mais plutôt sur un enregistrement massif d'une grille complète.

    La solution serait de changer de structure de base pour passer sur du SQLServer, mais les coûts de licence sont jugés prohibitif. D'où les bidouilles pour masquer les problèmes et se donner bonne conscience.

    Mais je vais peut-être aussi étudier la possibilité d'un enregistrement direct sur une table temporaire en sqlserver avec un traitement et enregistrement définitif ultérieur.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  6. #6
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Mais je vais peut-être aussi étudier la possibilité d'un enregistrement direct sur une table temporaire en sqlserver avec un traitement et enregistrement définitif ultérieur.
    Oui, un intermédiaire (XML, table temporaire) peut être utile. Ou encore ce tuto: http://immobilis.developpez.com/tuto...grace-a-excel/
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. [XL-2010] grille de saisie via un Userform
    Par crissud dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/12/2013, 08h33
  2. [XL-2007] Activer protection feuille après fermeture de la grille de saisie Excel (formulaire)
    Par petitorco dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/06/2011, 11h54
  3. Grille de saisie avec Javascript
    Par mafilek dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/01/2010, 13h38
  4. VirtualTreeView - Problème de saisie en mode grille
    Par Morvan Mikael dans le forum Delphi
    Réponses: 4
    Dernier message: 05/07/2007, 16h02
  5. Grille avec saisie & Combos lié
    Par J-P-B dans le forum XMLRAD
    Réponses: 2
    Dernier message: 12/06/2003, 11h08

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