Onizukasan
Messages postés6Date d'inscriptionmardi 24 avril 2007StatutMembreDernière intervention 9 juillet 2007
-
24 avril 2007 à 11:29
Onizukasan
Messages postés6Date d'inscriptionmardi 24 avril 2007StatutMembreDernière intervention 9 juillet 2007
-
26 avril 2007 à 11:01
Bonjour à tous!
Tout d'abord, avant que j'oublie : je travaille sous Visual Studio .NET 2003, ASP.NET avec C# et j'utilise la version 1.1 du framework .NET
Voici ma situation :
J'ai une page aspx qui contient des controles utilisateurs (ascx) qui represente
differentes parties de la page (un menu à gauche, une en-tete et un principal).
Je souhaite dans un de ces controles utilisateur (le menu) que, lorsqu'on choisi
dans une liste deroulante une date, une liste de liens vers des fichiers
de cette date soit affiché en dessous (par exemple dans un tableau, mais ce n'est pas
important)
Je souhaite ne raffraichir que le controle utilisateur (contenu dans un div)
ou si possible seulement la liste des liens. J'ai donc besoin de pouvoir
intervenir lorsque l'élement de la liste déroulante selectionné change.
Ainsi pour pouvoir manipuler par programmation les controles j'ai utilisé
le Web Control DropDownList. Or celui-ci ne dispose pas d'evenements tels
que OnChange qui est present pour les listes deroulantes html classiques.
Je pensait pourvoir utiliser l'evenement OnSelectionChanged or celui-ci
n'est, malgré son nom, appellé que lorsque l'élement selectionné à été changé
mais entre deux publications serveur. Je vous rappele que je ne souhaite pas
recharger toute la page mais seulement la partie nécessaire et donc que
l'utilisation classique avec autopostback à vrai n'est à priori pas
possible. J'aimerai savoir comment il me serai possible de pouvoir intervenir
(et ainsi, par exemple appeller des méthodes telles que Ajax.Updater issue du mini
framework Javascript prototype.js) lorsque l'utilisateur change l'element selectionné
dans la liste deorulante.
peut etre qu'a force je me suis embrouillé tout seul et que quelque chose de
tout bete est possible de faire pour regler mon problème (j'espere!). En tout cas merci
de m'avoir lu et si quelqu'un a un idée je suis preneur.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 25 avril 2007 à 13:08
Bonjour,
Microsoft ASP.net Ajax Extension n'est pas dispo pour .net 1.1, le controle UpdatePanel t'aurais surement aidé ! Les evenements que tu as sur le controle DropDownList sont des evenements serveur, ils nécessitent donc un postback. il faut faire du JavaScript en utilisant la librairie prototype par exemple, mais pour cela il faudra faire du developpement JavaScript spécifique et ce n'est pas forcément lié à ASP.net
Onizukasan
Messages postés6Date d'inscriptionmardi 24 avril 2007StatutMembreDernière intervention 9 juillet 2007 26 avril 2007 à 11:01
Bonjour,
après lectures de centaines de pages de documentation et de page de forum et autres bidouille tentées sous notre cher visual studio la seule solution pour intercepter l'evenement que je souhaitait (le changement de l'element selectionne dans la liste) est d'ajouter un attribut à la dropdownlist de la facon suivante :
MaListeDeroulante.Attributes.Add("onchange", "javascript:metsAJour()");
metsAJour() etant une méthode javascript dans lequel j'utilise Ajax.Updater pour actualiser un conteneur (celui de la liste des liens) en spécifiant une url d'un fichier générant le code à inclure. Or plutot que d'avoir recourt à un script asp (limitant ainsi l'interet de developper en asp.net ) je souhaiterai savoir s'il est possible d'appeler une méthode du code behind style private void ConstruireListeLiens() à partir de la méthode javascript metsAJour() ou bien directement à partir de l'ajout de l'attribut ajouté au web control Attributes.Add("onchange", "ConstruireListeLiens()");
Voila donc je trouve bizare qu'alors que les classes de base possèdent des evenements OnChange alors que le composant récent de Microsoft DropDownList n'en propose pas... Il m'a cependant semblé voir un evenement OnTextChanged faire son apparition dans la version 2 du framework .NET alors si ca peut donner des pistes à des personnes ayant la v2 ayant le meme genre de problème que moi tant mieux.