2010-07-26 6 views
0

J'ai créé une page ASPX Default.aspx. Il contient iframe avec child.aspx. Le fichier Child.cs contient des méthodes Web qui doivent être appelées par la page parente. Si je comprends bien, j'ai besoin de recevoir l'instance de la classe enfant, alors je serai en mesure de les appeler. Comment puis-je faire cela?Appel de la méthode iframe enfant à partir de la page ASPX parent

Je serai vraiment apprécié pour une solution constructive,

Default.aspx (page Parent)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Parent_Child_Iframe._Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <asp:Button ID="btGetDataFromChild" runat="server" Text="Get Data from Child" /> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
      <ContentTemplate> 
       <iframe id="I1" height="300px" name="I1" src="child.aspx" width="400px"></iframe> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
    </div> 
    </form> 
</body> 
</html> 

Child.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Child.aspx.cs" Inherits="Parent_Child_Iframe.Child" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <br /> 
     <br /> 
     <br /> 
     <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
    </div> 
    </form> 
</body> 
</html> 

Child.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace Parent_Child_Iframe 
{ 
    public partial class Child : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
     public string getResultData() 
     { 
      return TextBox1.Text + TextBox2.Text; 
     } 
    } 
} 

Comment appeler getResultData() à partir de Child.aspx.cs en cliquant sur le bouton sur la page parente. La principale difficulté est que je ne peux pas utiliser Javascript pour collecter les informations des TextBox car la tâche est plus compliquée et je ne peux utiliser que des méthodes serveur.

Merci d'avance, Meilleurs voeux, Greg.

Répondre

0

Ce n'est pas vraiment le cas des iframes. Souvenez-vous que HTTP est un protocole sans état, ce qui signifie que chaque requête pour une page est une requête indépendante et qu'elle n'aura aucun contexte de la requête précédente. Ce que je pense que vous devriez faire, est de demander la page Child.aspx avec le formulaire spécifique ou les variables de demande, et la page enfant devrait produire la bonne page en conséquence.

Pourriez-vous expliquer ce que vous voulez réaliser?

+0

Bonjour, Nous avons acheté le composant qui fournit la configuration de la vue par javascript, mais pour recevoir les données de résultat, vous pouvez seulement dans codebehind (C#). En raison de certaines choses spécifiques, j'ai besoin d'utiliser des iframes avec ce composant et quand je clique sur le bouton sur la page parente j'ai besoin de recevoir les informations de iframe (appelez la méthode C# de child.cs getResultdata();). C'est pourquoi je vous demande comment je peux recevoir l'accès à ces données. Merci d'avance, Greg – Greg

+0

Quel composant avez-vous acheté? –

+0

Je ne peux pas le dire, désolé. – Greg

Questions connexes