[Frwk2.0] Comment recupérer valeur entre 2 IFrames

dimkhas Messages postés 14 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 15 février 2006 - 29 déc. 2005 à 18:14
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 - 30 déc. 2005 à 22:47
Bonjour
J'ai un pb pour récupérer la valeur d'une variable au niveau de mon code webform2.aspx.
Je m'expliquer :
en faite j'ouvre une fenétre windows composé de deux iframes:
Pour le premier iframe je affecte le formulaire webform1 . C'est à ce niveau que je construis en vbscript une chaine de caractére selection. j'ai implémenté en vbscript une fonction affiche() ki me permet d'afficher la chaine à ce niveau aussi.
Au niveau du deuxiéme frames j'affecte webform2.
j'implémente la aussi une fonction affiche() :
Code:
function affiche()
affiche=parent.affiche()
end function

en vbscript ki me permet de récupérer la valeur de sélection au niveau1. Jusque là ça marche.
Mais quand je veux récupérer la valeur selection au niveau de mon code webform2.aspx, je n'y arrive. J'appelle la nouvelle fonction que j'ai réecrit au niveau du webforms2 mais rien.
voici le code que j'utilise au niveau de mon webforms2.aspx

Code:
Private Sub ddlTypePJ1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlTypePJ1.SelectedIndexChanged

'If (ddlTypePJ1.SelectedValue <> "-1") Then
Response.Write("<script language=''vbscript''>")
'Response.Write("on error resume next")
Response.Write("alert(document.affiche())")
Response.Write("</script>")
'End If
End Sub

j'ai essayé aussi
Code:
Response.Write("alert(document.parent.affiche())
")
mais rien


Si quelqu'un peut me secourir
Merçi

12 réponses

OursPasNet Messages postés 45 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 14 août 2008
30 déc. 2005 à 11:09
Bonjour,
t'es sur que c'est de l'asp.net ??



Ourgggg !!!!!!
L'ours pas tres net.....
0
dimkhas Messages postés 14 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 15 février 2006
30 déc. 2005 à 11:49
Bonjour
Oui c'est de l'ASP NET
le code en haut c'est le contenu du webform2.aspx. J'utilise du vbscript.
Le code en bas c'est le code behind c'est à dire webforms2.aspx.vb
.
0
dimkhas Messages postés 14 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 15 février 2006
30 déc. 2005 à 12:14
Bonjour
Voici le code complet au niveau de mon webforms2.aspx.
 

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm2.aspx.vb" Inherits="WebRiva.WebForm2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <title>WebForm2</title>
  <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
  <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
  <meta content="JavaScript" name="vs_defaultClientScript">
  <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
  <script language="vbscript">
   
 function affiche()
  affiche=parent.affiche()
 end function
  </script>
 </HEAD>
 
  <form id="Form2" method="post" runat="server">
   &amp;nbsp;
   S&#233;lectionner le type du ou des fichier(s) &#224; joindre</TD>
   
  </form>
 
</HTML>


là quand je clique sur le bouton il m'affiche bien la valeur que je veux. Mais moi j'aimerai récupérer cette valeur au niveau de mon code behind càd webforms2.aspx.vb pour faire des traitements avec.
Merçi de vore aide
0
cs_azra Messages postés 425 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 13 juillet 2007 1
30 déc. 2005 à 14:43
Bonjour,

D'après ce que j'ai compris, dit moi si cette solution fait l'affaire:

- Tu declaire dans Webform2 un hiddenfield, runat="server", par exemple "toto".
- Dans ton script affiche() de webForm2, tu assignes la valeur que tu souhaites envoyer au codebehind a "toto".
- A la fin de ton script affiche() tu provoques un "postBack" dans webForm2 afin de "poster" ton formulaire webform2.aspx et faire ton traitement au niveau de ton code behind.

Bon courage :P


<HR>
Azra (Florent) - MVS - MCAD.NET
0

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

Posez votre question
dimkhas Messages postés 14 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 15 février 2006
30 déc. 2005 à 14:48
Bonjour

" A la fin de ton script affiche() tu provoques un "postBack" dans webForm2 afin de "poster" ton formulaire webform2.aspx et faire ton traitement au niveau de ton code behind."
je n'ai pas compris ou bien je ne sais pas faire.
Pouvez vous me dire comment procéder ?
Merçi
0
dimkhas Messages postés 14 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 15 février 2006
30 déc. 2005 à 15:13
Bonjour
quand je déclare dans webforms2 un hiddenfield comme suite :

j'ai l'erreur suivante : the active schema does not support element '<asp: HiddenField
Merçi de votre soutien
0
cs_azra Messages postés 425 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 13 juillet 2007 1
30 déc. 2005 à 15:16
Oui bien sur, je vais te donner la version "crade" et je suis sur que Cyril passera derriere pour donner une version plus propre (http://weblogs.asp.net/mnolton/archive/2003/06/04/8260.aspx, en 2.0, page.clientscript.getPostBackReference).

Dans la version "crade" tu mets dans ta page un asp:button, visible=false et tu demandes à ton script de click dessus (button.click) , mais ca marche très bien.


<HR>
Azra (Florent) - MVS - MCAD.NET
0
dimkhas Messages postés 14 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 15 février 2006
30 déc. 2005 à 16:05
Bonjour Mr
est ce ke vous pouvez être beaucoup plus explicite. Je ne suis pas trés en ASP NET. ça fait juste un mois que j'ai commencé à le toucher.
merçi
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 déc. 2005 à 17:37
Bonsoir,

Pourquoi des iframes, pourquoi du vbscript ? le web évolue, les iframes sont fortement déconseillé tout comme le vbscript (pas multi-plateforme), pour ce qui est des iframes, voici pourquoi ne pas les utiliser : http://forum.alsacreations.com/topic-1-451-1-Les-frames-cadres--a-mditer.html et aussi pour tout les problemes que tu as, et que tu vas rencontrer plus tards.

Dans l'ancien temps, on utilisait ces choses, pour économiser de la bande passante, en effet chaque frame était indépendante, mais de nos jour, la bande passante n'es plus un réel probleme. Je te conseil donc d'abandonner l'idée des frame et d'utiliser les UserControle (les fichiers ascx) ou si tu es en .net 2 d'utiliser directement les master page + usercontrol :)

pour info, sur ce site, on charge sur chaque page au minimum une dizaine d'userControle, sur certaines pages, ca m'etonnerais pas qu'on soit à une cinquantaine.

Mais si la bande passante est vraiment un probleme, je te conseil donc de voir (ou revoir) le fonctionnnement du HTML, ainsi que du CSS, grace à cela, j'ai fait économisé à CodeS-SourceS 15Go de traffic par jour, rien qu'en optimisant le menu ! ...

Pour débuter avec le HTML, j'ai écrit un article ici : http://blogs.Developpeur.org/cyril/articles/9089.aspx

En esperant que ca te fasse reflechir, et abandonner les horribles frames ;)

PS : Azra : t'en as d'autres des horribles liens comme ca ? je pige vraiment pas pourquoi il fait comme ca :s, il existe l'interface IPostBackEventHandler (presque la meme que ICallBackEventHandler) qui permet de faire tout ca trés proprement !

<hr>Cyril - MVS - MCP ASP
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
30 déc. 2005 à 20:35
J'allais le dire, cyril (en fait j'avais la flemme...)

Je rejouterais même un truc :
Dans les temps ancestraux où on utilisait encore l'ASP, on utilisait bien le Response.Write() pour écrire des script côté client via du code serveur.
Mais c'est finit avec l'asp.net !!
Pour ajouter à la page un bloc de script, tu peux utiliser Page.ClientScript.RegisterClientScriptBlock() par exemple, c'est quand même plus propre que Response.Write() !

En plus les frames peuvent peut être faire économiser de la bande passante (et encore), mais elles peuvent surtout faire sévèrement augmenter le nombre de requête vers ton serveur...

Nurgle
0
cs_azra Messages postés 425 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 13 juillet 2007 1
30 déc. 2005 à 21:52
Je savai que tu repasserais derrière Cyril :)


<HR>
Azra (Florent) - MVS - MCAD.NET
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
30 déc. 2005 à 22:47
pourquoi tu dis ça ?

(en fait ça fait depuis ce matin que je voulais poster tout ça, mais j'avais vraiment la flemme... heureusement jesus était online à ce moment là et à donc pu dispenser sa sainte parole sur le sujet...)

Nurgle
Bonne Année à tous !
0
Rejoignez-nous