Appeler une fonction par click sur hyperlink en ASP.NET

moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 - 25 avril 2010 à 01:10
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 - 8 mai 2010 à 17:16
Bonsoir,
Bah en fait tout est dans le titre! Par contre je ne sait pas si c'est le bon endroit pour ce genre de question. Si je ne suit pas au bon endroit, je suis désolé!

ma fonction est déclaré comme suit:

<script language="C#" runat="server">
public void test(){ label1.text="qqch"; }
</script>

et je l'appelle comme ça:



Je vous remercie d'avance...
moi


moi

14 réponses

zllzn Messages postés 18 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 23 juin 2010 1
5 mai 2010 à 23:08
Desole de n'avoir pu t'aider.

Bonne chance en tout cas pour la suite.
1
zllzn Messages postés 18 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 23 juin 2010 1
28 avril 2010 à 06:47
Salut,

Non ca ne marchera pas.
Premierement, parce qu'un hyperlink ne contient de definitions pour "onclick".
Deuxiemement, parce que pour Target il attend soit "_self", "_blank", "_top", "_parent" ou "_search".

Si tu utilises Visual Studio, utilise donc les proprietes des controles. Ca te fera gagner beaucoup de temps.

Pour ce que tu veux faire, utilise un linkbutton.
Acceuil
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 3
28 avril 2010 à 13:40
Salut,
Euh... J'avais oublié de dire que j'utilise des frames... Et le fameux target="Principale" correspond à la frame dans laquelle je voudrais afficher ce qui correspond au lien cliqué...
En plus de cliqué sur le lien je voudrais afficher qqch dans un label!
Sinon avec le linkbutton je n'arrive pas à afficher dans ma frame (Principale).

Voilà je pense n'avoir rien oublié cette fois!
Je te remercie quand-même!
moi
0
zllzn Messages postés 18 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 23 juin 2010 1
28 avril 2010 à 14:07
Pour afficher dans le label, tu mets ça dans ta fonction appelée ou dans le page load, suivant le moment où tu veux afficher.

Ce que je fais, c'est que je met un label avec la propriété text=""
Et dans le code behind, je fais ' Label1.Text = "patate" ' par exemple.
Tu peux aussi mettre la propriété Visible à false, si tu préfères.

Avec le Hyperlink, tu arrivais à afficher ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 3
28 avril 2010 à 17:05
Salut,
En fait je me suis mal expliqué, j'ai une en-tête dans laquelle se trouve un label (label1) et 1 frame en dessous (Principale) dans laquelle s'ouvre la page correspondant au lien cliqué...
Les liens eux-même étant à l'extérieur et à gauche de la frame (style sommaire).

Quand je clique sur un lien, la page s'affiche dans la frame et le label prend le nom de la page ouverte. Ou du moins devrait!!!

Ce que tu me dis ça marche mais le label est fixé dans la frame je n'arrive pas à le déplacer dans mon en-tête ou y accéder si ce dernier est déjà dans l'en-tête...

Sinon j'arrive à afficher mes pages dans ma frame mais le label reste vide. J'ai même essayé de créer un variable public, comme on fait pour transmettre des données entre 2 formulaires windows dans une application windows; Mais pareil je n'y arrive pas!

Bref j'ai besoin de toi!
A bientôt.

moi
0
zllzn Messages postés 18 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 23 juin 2010 1
28 avril 2010 à 22:53
Pour ce que tu veux faire, tu aurais aussi pu utiliser une Masterpage, c'est assez facile d'acces qui plus est.
Bref, on va essayer avec des frames.

Dans le code behind, tu arrives a acceder a ton label ? Je veux dire, est-ce aue l'intellisense te le propose dans sa liste ?
Quand on ne trouve pas un controle ( par exemple dans un templatefield, d'un gridview), on peut faire (Label)Gridview1.FindControl("Label1") a partir de la, on y acces.

Apres si c'est directement dans la page, je suppose (Label)this.FindControl("Label1") fonctionne.
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 3
30 avril 2010 à 23:54
Salut,
Oui j'ai bien accès à mon label...



moi
0
zllzn Messages postés 18 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 23 juin 2010 1
1 mai 2010 à 06:12
Tu arrives à accéder à ton label, mais pas à changer le texte ?
Même avec ((Label)Principale.FindControl("Label1")).Text = "patate" ?

Je comprends plus vraiment le problème à vrai dire.
Tu arrives à afficher ta frame, tu as accès à ton label dans la frame. C'est quoi le problème alors ?
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 3
1 mai 2010 à 13:33
Salut,
Je veux que le texte change quand je clique sur l'hyperlink...

Ensuite j'ai accès au label dans le compilateur à partir du moment ou je me trouve dans la page où le label est déclaré si je suis sur une autre page je ne peux pas y accéder même en utilisant la fonction findcontrol. Je ne peux pas, par code, naviguer d'une page à une autre.

Quand j'"exécute" le site, j'ai beau cliquer sur l'hyperlink, la fonction que j'utilise n'est pas appelée... C'est ça le problème, et c'est d'ailleurs le même avec le linkbutton.

C'est dingue parce que je n'est même pas l'impression que ça soit un truc difficile à faire, pourtant je galère!!! Merci pour ton aide.
A bientôt.

moi
0
zllzn Messages postés 18 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 23 juin 2010 1
2 mai 2010 à 22:50
C'est à dire que même si tu instancies ton label dans la page principale (et non la frame qui change à chaque fois) tu n'y as pas accès pour le modifier ?

Tu es en VB ou en C# ? En VB, j'ai remarqué que si tu précises pas l'élément AutoWireUp à true dans l'attribut @Page, il n'arrive pas à accéder à la page de code behind (quelquechose.aspx.vb ou .cs).
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 3
4 mai 2010 à 12:43
Le label doit être modifié par l'hyperlink et c'est cet hyperlink qui change le contenu de la frame et ça que je crée le label n'importe où!!!
Je pense que j'ai crée des labels partout et de n'importe où et quoi qu'il arrive j'ai l'impression que l'hyperlink ne permet pas d'accéder à ma fonction.

Je suis en c# et je crois que je vais y retourner!!!
J'ai quand-même envie de réussir à appeler cette fonction!

A bientôt.
moi
0
zllzn Messages postés 18 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 23 juin 2010 1
4 mai 2010 à 22:59
Des fois, quand il ne me trouve pas une fonction, je laisse l'IDE la creer lui meme. C'est-a-dire, au lieu de l'ecrire de toutes pieces, j'oblige Visual Studio a la creer.

Tu cliques sur ton hyper link, tu vas dans la fenetre proprietes. Normalement tu auras un eclair orange en haut, dans le menu des proprietes.
La, tu choisis la fonction que tu veux (Load, Init, etc.) et tu double cliques dessus et il te renvoie vers la page de code behind avec la nouvelle fonction creee.

Mais il me semble qu'hyperlink n'a pas de fonction "onclick". Ce que tu peux faire alors, c'est que tu remplaces ton hyperlink par un buttonlink. Si tu tiens absolument a ce que ce soit un lien, tu changes l'apparence de 'boutton' a 'lien'. Et la tu devrais on click.

Dans le code, tu peux le rediriger alors avec un Page.redirect("URL..."), et tu met Label1.Text= "page redirigee".
Pour "Page", je suppose aue tu peux mettre le nom de ta frame.
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 3
5 mai 2010 à 13:27
Salut,
Je n'y arrive toujours pas, je vais arrêter là un moment... Je m'y remettrai plus tard quand j'aurai trouvé un cour d'étudier les bases à fond et on verra après!

Sinon j'ai eu une idée pour faire tout ça en C#, avec un web browser!
Ca ne remplace pas un site mais c'est un compromis... J'ai installer l'application sur toute les machines qui en ont besoin et les données à télécharger sur un hébergeur tout bête!!! Etant donné que ça n'est pas professionnel il n'y a pas de soucis... Et puis ça a de la "gueule" quand-même!

En attendant je te remercie pour ton aide, t'as été patient!
A bientôt, parce que je ne m'avoue pas vaincu!
moi
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 3
8 mai 2010 à 17:16
Salut,
Ne le soit pas... J'ai voulu commencer par la fin et je me suis fais avoir!!!
Mais je n'ai pas dis mon dernier mot!

A la prochaine.
moi
0
Rejoignez-nous