Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Executer du code sur un lien contenant du JS

6 réponses
Avatar
Fr
Bonjour,

Ce lien me permet de fermer mon popup et de regdirigé l'utilisateur vers la
page appelante en l'actualisant.

<A HREF="#"
onClick="window.opener.document.location='operation_creation.aspx?n_ope=<%Response.write(session("n_ope"))%>';
window.close()">Fermer</A>

Le problème est que j'aimerais exécuter un bout de code (une sub defini dans
le code Behind de mon popup) avant de fermer le Popup.
Comment faire ? Puis-je utilisez un LinkButton ? Dans ce cas ou dois-je
coller toute la partie onClick="Window.....";window.close()"

Merci d'avance.


--
Fr@ncky

6 réponses

Avatar
Franck Quintana
Bonjour,

Essayez ceci.

function MaFonction() {
window.opener.document.location='operation_creation.aspx?n_ope=<%=(session("n_ope"))%>';
// Appel de votre fonction ici
window.close();
}

<a href="javascript:MaFonction();">Fermer</a>

Franck Quintana
Active+ Software
http://www.activeplus.com
Avatar
Julien
Bonjour,

Vous pouvez utiliser une balise <a href="... avec un attribut
runat="server" et un identifiant, vous disposerez ainsi d'un contrôle
serveur. Ce contrôle possède ensuite un attribut onclick="" dans
lequel vous pouvez placer vos fonctions clients, et également un
attribut onServerClick="" dans lequel vous placez le nom de la méthode
serveur.
Vous pouvez également gérer ce clic serveur directement dans votre
code_behind en créant un handler pour votre l'évenement serverClick
de votre contrôle.

Julien
Avatar
Fr
Merci à tous les deux... je vais explorer ces solutions


"" a écrit dans le message de news:

Bonjour,

Ce lien me permet de fermer mon popup et de regdirigé l'utilisateur vers
la page appelante en l'actualisant.

<A HREF="#"
onClick="window.opener.document.location='operation_creation.aspx?n_ope=<%Response.write(session("n_ope"))%>';
window.close()">Fermer</A>

Le problème est que j'aimerais exécuter un bout de code (une sub defini
dans le code Behind de mon popup) avant de fermer le Popup.
Comment faire ? Puis-je utilisez un LinkButton ? Dans ce cas ou dois-je
coller toute la partie onClick="Window.....";window.close()"

Merci d'avance.


--




Avatar
Fr
Voici ce que j'ai fait (voir ci dessous).
Le pb est que j'ai l'impression que c'est d'abord le OnClientClick qui
s'execute. Donc mon code n'est jamais exécuté

Avez-vous une idée ?

Merci



Extrait de mapage.aspx

<script>
function f_fermer() {
window.opener.document.location='operation_creation.aspx?n_ope=<%=(session("n_ope"))%>';
window.close();
}
</script>

<body>
.../..
<asp:LinkButton ID="LinkButton1" runat="server"
OnClientClick="javascript:f_fermer();">Valider et Fermer</asp:LinkButton>
.../..
</body>


Extrait de mapage.aspx.vb

Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles LinkButton1.Click

' On actualise d'abord le panier
Call actualiser_Click(sender, e)

Dim ope As operation
ope = Session("obj_operation")

Dim fv As filtre_valeur
For Each fv In
ope.LISTE_R(1).GetFiltreParNomColonne("ET70").LISTE_FILTRE_VALEUR
fv.InsertUpdateBD()
Next

End Sub


"Julien" a écrit dans le message de news:

Bonjour,

Vous pouvez utiliser une balise <a href="... avec un attribut
runat="server" et un identifiant, vous disposerez ainsi d'un contrôle
serveur. Ce contrôle possède ensuite un attribut onclick="" dans
lequel vous pouvez placer vos fonctions clients, et également un
attribut onServerClick="" dans lequel vous placez le nom de la méthode
serveur.
Vous pouvez également gérer ce clic serveur directement dans votre
code_behind en créant un handler pour votre l'évenement serverClick
de votre contrôle.

Julien
Avatar
Julien
Je ne crois pas qu'il existe d'attribut OnClientClick pour le contrôle
LinkButton. Cependant, il est normal dans le cas d'un évenement client
et d'un serveur que la méthode client soit appelée avant le retour au
serveur.

Dans l'exemple que je donnais, la balise <a id="monLien" href=".."
onclick="maMethodeClient" onServerClick="maMethodeServeur"
runat="server">, sera rendue côté client par une balise du type : <a
href=".." onclick="maMethodeClient();__doPostBack()"> et donc
l'évenement Click lancera d'abord la méthode maMethodeClient, puis
l'appel à la méthode __doPostBack qui générera l'évenement Click
côté serveur.

Dans le code behind, vous aurez ainsi :

Protected Sub monLien_ServerClick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles monLien.ServerClick

' On actualise d'abord le panier
Call actualiser_Click(sender, e)

Dim ope As operation
ope = Session("obj_operation")

Dim fv As filtre_valeur
For Each fv In
ope.LISTE_R(1).GetFiltreParNomColonne("ET70").LISTE_FILTRE_VALEUR
fv.InsertUpdateBD()
Next

End Sub

Julien
Avatar
Julien
Petite erreur dans mon exemple : si la méthode dans le code_behind
possède dans sa signature la clause "Handles monLient.ServerClick", il
n'est pas nécessaire de préciser le nom de la méthode appelée dans
l'attribut OnServerClick qui ne sera pas renseigné dans ce cas là.

Réciproquement si l'attribut OnServerClick est renseigné avec le nom
d'une méthode qui gère l'évenement, cette méthode dans le code
behind doit porter ce nom (dans l'exemple que j'ai donné elle
s'appelerai maMethodeServeur et nom pas monLien_ServerClick) et ne pas
comporter dans sa signature la clause Handles.