none
Choix d'ordre de userControl RRS feed

  • Question

  • Bonjour,

     

    Dans une page aspx, j'ai 2 userControl. Le userControl 2 doit communiquer avec le userControl 1.

    J'utilise bien la refence  : Reference VirtualPath pour communiquer mais malheureusement, le userControl 2 se charge avant le userControl 1 ?!? Comment puis je inverser l'ordre de chargement ?

     

     

    Merci

    jeudi 9 octobre 2008 13:33

Réponses

  • Vous faite fausse route.

    Ne faites jamais communiquer 2 userControls directement, à moins d'en faire un seul contrôle.

    Vous devez vous astreindre au modèle MVC.

    Vos données sont dans le modèle et vos contrôles vont les chercher dans le modèle qui lui sera toujours construit avant l'initialisation des contrôles.

    mercredi 15 octobre 2008 16:06

Toutes les réponses

  • Vous faite fausse route.

    Ne faites jamais communiquer 2 userControls directement, à moins d'en faire un seul contrôle.

    Vous devez vous astreindre au modèle MVC.

    Vos données sont dans le modèle et vos contrôles vont les chercher dans le modèle qui lui sera toujours construit avant l'initialisation des contrôles.

    mercredi 15 octobre 2008 16:06
  • Bonjour,

     

    Je soutiens la propostion de M. Bacelar, chaque contrôle recherche ses données au niveau de leur modèle (Entités, DataSet, classe perso,...etc).

    Si vous souhaitez réaliser une communication entre UserControl, cela dénote un défaut de conception dans votre page.

     

    Cordialement

    vendredi 17 octobre 2008 08:58
    Modérateur
  •  

    Bonjour et merci pour vos remarques.

     

    Mes 2 user control sont génériques, ils representent respectivement une liste d'utilisateurs ayant la possibilité d'etre contactés, et le 2eme le formulaire de message.

     

    Je voulais recuperer des informations du 1er UC sans passer par une connection à la BDD pour des raison de performance.

     

    Ma solution est d'avoir fait une propagation d'evenement afin de recuperer des infos du 1er UC et de les transmettre au 2eme avec un LoadControal. --> "public EventHandler<BLL.EventArgsMessages> MessagesArgs;"

     

    Est ce une mauvaise solution ?

     

     

    Merci

    lundi 20 octobre 2008 08:48
  • Dans une approche classique en couche, la couche présentation communique avec la couche business qui elle même communique avec la couche des données.

    Les UC font partie de la couche présentation et le model cité précédemment fait partie de la couche business (ou est la couche business). Le model communique avec la couche de données.

    Avec cette architecture classique, je ne comprends pas le rapport entre vos UCs et le problème de connexion à la base de données.

     

    lundi 20 octobre 2008 13:08
  • Mon UC1 presente une liste utilisateurs : elle fait appel à la couche business pour peupler ses controles qui elle fait appel à la DAL. Le design MVC est respecté.

     

    Mon UC2 afiichant un formulaire de message, lui est automatiquement remplit de differentes informations sur l'utilisateur sur lequel j'ai cliqué dans l'UC1.

     

    Pour eviter de reinteroger ma BLL avec un Id utrilisateur qui ferait appel à la DAL, j'ai preferai utilisé la propagation d'evenemnt afin de ne pas passer par la BLL et la DAL pour les performances.

     

    La page host des 2 UC gere le passage d'information.

    lundi 20 octobre 2008 15:19
  • Quand vous cliquez sur l'UC1, vous changez l'utilisateur.

    Si vous n'avez pas les informations sur le nouvel utilisateur vous remplissez ces informations dans le Model (business) avec les données fournis par la DAL.

    A chaque postback, l'UC2 demande, juste avant son rendering, les informations à afficher au Model qi sera toujours à jour.

    Je ne vous pas, dans se mécanisme, la nécessite d'avoir un couplage entre UC1 et UC2.

    mardi 21 octobre 2008 11:51