Dude76 19 Posté(e) le 30 décembre 2009 Partager Posté(e) le 30 décembre 2009 Glop. Re un problème à vous soumettre. Pour une de nos applications web, j'ai fait une page pouvant recevoir un plugin : un dll contenant un controlcomposite et héritan d'une interface spécifique (pour lui fournir des données, etc.). Dans ce plugin, j'avais mené quelques tests avec GridView histoire d'avoir un truc un peu complexe à gérer (par rapport à un contrôle de texte ou du même genre). J'avais rapidement vu que pour ne pas avoir de gros problèmes (pouvoir gérer les event de tri des colonnes et de pagination), il m'avait fallu gérer la construction des contrôles du plugin dans l'init de celui-ci et non pas seulement dans la méthode de construction (CreateChildControl). édition automatique de la ligne, mise à jour de la donnée derrière, ajout, suppression, tout ça fonctionnait sans problème. Du coup, rassuré, j'avais 'classé' l'affaire pour mon 'Proof Of Concept', je refilais le bébé à ceux qui devait créer un plugin (avec mon aide) pour le client. Et là, pas de bol : on a voulu simplement ajouter un row_command pour slélectionner la ligne, et ... aucun event généré. Le page_init et le page_load se déroule sur l'hôte, le contrôle est créé, bindé ... et c'est tout ! Et mon event row_commend, il est passé où ? J'ai fouillé le web les 2 jours avant mon départ en vacances (le vendredi avant Noël), confus, mais je n'ai rien trouvé de probant, tout au mieux que je n'étais pas le seul à rencontrer ce problème. Si par miracle vous aviez des idées (ou si notre demi-dieu de la programmation - GFx - passait par là) où la moindre piste sur comment je devrais m'y prendre pour que mon event remonte bien à mon plugin plutôt que de se perdre je ne sais où, ben ça me serait sacrément utile. Merci bien Lien à poster
Dude76 19 Posté(e) le 5 janvier 2010 Auteur Partager Posté(e) le 5 janvier 2010 Bon, finalement, on a réussi. On a mis le contrôle sur la page (+ register sur la page) + ajout en référence du projet (et donc plus chargé dynamiquement), et là, ça fonctionnait. Énervement. Je jette le contrôle de la page en laissant le register, on le recharge dynamiquement dans l'init, ça marche. On enlève le register, on continue de charger dynamiquement, ça marche; juste pas content d'avoir une ambiguïté sur la présence de 2 dll : 1 dans bin, 1 dans le répertoire dédié. On enlève la référence, ça marche plus. Le problème semble bien cerné. On colle la dll dans bin (et le chargement depuis bin), ça marche. On remet la dll dans son répertoire, on recharge depuis celui-ci, ça marche pas, même en essayant de jouer avec le chargement d'assembly dans l'AppDomain (vu que depuis bin elle y était chargé automatiquement...) On fouille sur le web et on fini par trouver ça: Moving the Code-Behind Assemblies/DLLs to a different folder than /BIN with ASP.NET 1.1 Multiple /bin folders in ASP.NET avec une jolie mention "What's really cool about this is that it lets you build a pseudo plugin architecture into your existing ASP.NET website." Haine et rancœur. Je me suis fait littéralement chier à chercher pourquoi mon #@! d'event ne passait pas alors que le problème résidait dans un chargement/référencement de la dll dans l'application suffisamment 'tôt', d'autant plus frustrant que d'autres events passaient, eux (paging & sorting). Si ça peut aider d'autres développeur ... Lien à poster
Messages recommandés