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 :

Ajouter un Web User Control dynamiquement


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut Ajouter un Web User Control dynamiquement et Accèder aux propriétés
    Bonjour à tous,

    Je développe actuellement un questionnaire ASP.NET avec Visual Basic.NET.
    Le questionnaire possède 30 questions stockées en base de données, les réponses peuvent être des buttons radio, dropdownlist, textbox, checkbox et parfois un combiné; button radio avec pour dernier choix une zone de texte.

    Le formulaire doit être générer de manière dynamique.

    J'ai donc désider de créer des Web User Control afin d'obtenir des controls personnalisés par exemple 4 buttons radio avec un textbox pour le dernier button.

    La structure de l'application est la suivante:
    -un projet application Web contenant les web form et les web user control
    -un projet bibliothèque de classe contenant un Linq to SQL faisant lien vers SQL SERVER;
    - un projet bibliothèque de class contenant une class avec mes Functions qui permettront de remplir mes DataLists avec ObjectDataSource.

    Actuellement j'ai une Function (sélection des chapitres du questionnaire) qui remplit un DataList via un ObjectDataSource qui encapsulte un autre DataList remplit par une autre Function via un ObjectDataSource (sélection des questions par rapport au chapitres).

    J'en ai fini avec la présentation de l'application j'espère avoir était clair.

    Maintenant mon problème, je n'arrive pas à ajouter les web user control aux questions.
    Sachant que dans ma table "questions" j'ai ajouter une clé étrangère pointant vers une table "typereponse" pour affecter un Web User Control pour chaque question.

    Mes soucis de conception lors de l'analyse de se questionnaire y sont pour quelque chose.

    Merci de m'avoir lu, j'espère avoir quelques réponses afin de solutionner ce problème qui m'empêche d'aller plus loin.

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour ta présentation est claire, mais ce qui est le plus pertinent pour nous aider à te répondre c'est ceci :

    Citation Envoyé par Illuminati Voir le message
    Maintenant mon problème, je n'arrive pas à ajouter les web user control aux questions.
    Sachant que dans ma table "questions" j'ai ajouter une clé étrangère pointant vers une table "typereponse" pour affecter un Web User Control pour chaque question.
    Tu n'y arrives pas. Tu as un message d'erreur ? Comment t'y prends-tu ? Quel est précisément le problème (charger dynamiquement, gérer les postback, ou charger le bon UserControl en fonction du type de réponse ?).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    charger le bon UserControl en fonction du type de réponse
    Bonjour,

    c'est tout à fait ça. Je ne trouve pas le moyen pour faire correspondre l'idTypeReponse que je récupère dans ma table Question et l'associé au Web User Control correspondant pour enfin l'afficher sur le form.

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Ok, mais ça c'est à toi de le définir en base.

    Lorsque tu constitue ton questionnaire, il n'y a que toi qui sait quel sera le type de réponse attendu. Cette information, tu la stockes en base (à une question correspond un type de question).

    Ensuite, au moment de charger ton UserControl, tu regardes le type de la question en cours et en fonction tu charges le UserControl adéquat.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    Ok, mais ça c'est à toi de le définir en base.
    Ensuite, au moment de charger ton UserControl, tu regardes le type de la question en cours et en fonction tu charges le UserControl adéquat.
    C'est exactement ce que je désire faire mais j'éprouve une difficulté lorsque je veux récupérer la valeur de idTypeReponse associé à la question.
    Cette valeur est affiché par un ObjectDataSource et est contenu dans un Datalist qui lui même est contenu dans un DataList.
    C'est un vrai labyrinthe et je n'arrive pas à récupérer cette valeur pour la tester.

    Aussi,même si je n'y suis pas encore, j'ai envisager le SELECT CASE afin de faire correspond le bon Web User Control à la base question, sachant qu'il y a 18 Web User Controle et 30 questions. Pensez vous qu'il y existe une autre solution plus efficace?

  6. #6
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Je ne vois pas pourquoi tu t'embêtes avec ton ObjectDataSource et ta DataList. Pourquoi ne pas faire une simple requête linq pour récupérer la liste de questions d'un questionnaire ainsi que leur type.

    Ensuite, pour le Switch, tu pourrais nommer tes UserControls de la même façon que les types de questions.

    Ainsi si tu as une variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string questionType = MaQuestion.Type.ToString();
    Tu pourras ensuite faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Control myControl = LoadControl(questionType  + "ascx");

Discussions similaires

  1. Ajout web user control dans un placeholder
    Par gabdeschenes dans le forum ASP.NET
    Réponses: 4
    Dernier message: 13/11/2009, 16h47
  2. RequiredFieldValidator in web user control
    Par wayak3 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/10/2007, 13h10
  3. Chargement web user control
    Par xeon666 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 11/04/2007, 08h59
  4. [1.1]Probleme évenement avec Web User Control
    Par djoao dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/01/2007, 15h35
  5. [C#] DateTimePicker web user control
    Par titi29 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 29/06/2004, 18h38

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