[ASP .NET]Intercepter un evenement Javascript

J’aimerais savoir comment peut on intercepter un évènement Javascript afin qu’on puisse ensuite lui assigner un traitement ?
J’utilise actuellement un calendrier en Javascript qui au clic, me génère la date sélectionnée. Et je veux pouvoir ensuite attribuer cette nouvelle date à ma variable Session[“date”]. Le résultat du clic est pour l’instant intercepté par un input hidden (composant HTML) via le script js.

Ce que je fais dans ce cas là :

ma fonction javascript me rempli un hidden field, et je met aussi un Linkbutton dans ma page, sans Text comme ça il n’est pas visible à l’écran de l’utilisateur.

Ensuite, dans la fonction javascript je récupère mon bouton, mon linkbutton pour être précis. (Pour IE : )
var bt = document.getElementById(’<%=_lkDummyLink.ClientID %>’);

puis bt.Click();

et ça déclenche l’évènement ( _lkDummyLink_onClick(…) ) dans ton code source… puis tu fais ce que tu veux.

[quote=“the_webrunner, post:2, topic: 29853”]Ce que je fais dans ce cas là :

ma fonction javascript me rempli un hidden field, et je met aussi un Linkbutton dans ma page, sans Text comme ça il n’est pas visible à l’écran de l’utilisateur.

Ensuite, dans la fonction javascript je récupère mon bouton, mon linkbutton pour être précis. (Pour IE : )
var bt = document.getElementById(’<%=_lkDummyLink.ClientID %>’);[/quote]

Je n’ai pas saisi le role de ton LinkButton et le lien qu’il a avec ta fonction javascript qui remplit le hidden field.
Et j’imagine que “_lkDummyLink” est l’ID que tu a attribué à ton linkButton. Par contre, pourquoi ClientID ?

Ton but est de faire un traitement côté serveur, d’une action qui a lieu chez le client ? Dans ton cas, mettre une date sélectionnée par du javascript dans la session.

Sachant que mettre une valeur dans la session ne peut se faire que du côté serveur, le but du jeu est donc de déclencher un évènement (côté serveur) qui va récuperer cette variable et la mettre dans la session.

  • Pour récuperer ma valeur, je la met dans le hidden field, on est bien d’accord.

  • Pour déclencher mon évènement côté serveur, je simule un clic sur un LinkButton

  • ce qui va déclencher la fonction _lkDummyLink_Click(object sender, System.EventArgs e) dans le codeBehind de ta page

  • le nom de mon LinkButton (et son ID) est _lkDummyLink.

  • j’utilise bien le ClientID de ce linkbutton car c’est l’attribut qu’il aura côté client, et ce n’est pas forcément le même côté serveur.
    un LinkButton, côté client, ça donne : <a … id=“le ClientID” … > … et ça, javascript peut travailler avec.

J’espère que avoir été un peu plus compréhensible B)

Merci bien, par contre comment tu simule le click du bouton ? sachant que ton script javascript n’a pas l’air de se déclenché :confused: . Du coup, j’ai du faire un autopost back d’une Textbox dans laquelle j’ai modifié la couleur de ces bordures et mis la couleur du texte en blanc. Ouais, je sais c’est une feinte, mais ca génère un reload des page inutilement :confused: et moi je veux éviter ca.

il a dit : “puis bt.Click();”

Au temps pour moi. Par contre, il fait un autopost back le bougre B)

Pas si tu passes par le hiddenfield ?!?

Oui, donc en fait, j’ai feinté le truc. Je cherchais un moyen de contrôler le contenu de la hidden field (lorsque cette dernier se voit changer de valeur) je veux ensuite pouvoir traiter les données dans mon code-behind.
Bon, la récupération des données n’est pas dur, mais le fait de voir si le contenu du hidden fiel a changé là par contre :confused:

Du coup, j’ai utilisé une TextBox et hop je crée l’évènement OnTextChanged.