问题说明:主页面:Article.aspx
嵌套一个iframe,调用FileUpload.aspx页面,FileUpload.aspx中存在FileUpload文件上传控件.<iframe id="file" name="file" scrolling="no" width="600px" height="23px" src="FileUpload.aspx"  marginwidth="0" marginheight="0" frameborder="0"></iframe>
问题是,FileUpload.aspx页面中上传文件成功后,如何将保存文件的路径字符串传递到Article.aspx页面中呢?新人求助,口水勿扰,感激不尽!

解决方案 »

  1.   

    通过iframe.parent 获取父窗口
      

  2.   


    如果使用js的页是在框架中  
      top.frameName.document.all.ElementId  
      如果使用js的页是从框架页面上新开的页面  
      opener.top.frameName.document.all.ElementId 
     
    iframe父子窗口间js方法调用2009-04-15 15:38父窗口调用iframe子窗口方法<iframe name="myFrame" src="child.html"></iframe> 
    myFrame.window.functionName();
    iframe子窗口调用父窗口方法parent.functionName();父窗口页面<html>   
    <head>   
    <script   type="text/javascript">   function say() {
       alert("parent.html------>I'm at parent.html");
       } function callChild()
    {   
       //document.frames("myFrame").f1();
       myFrame.window.say();
    }   
    </script>   
    </head>   
        
    <body>     
    <input   type=button   value="调用child.html中的函数say()" onclick="callChild()"> 
    <iframe name="myFrame" src="child.html"></iframe> 
    </body>   
    </html>  
    子窗口页面<html>   
    <head>   
    <script type="text/javascript">
          
    function say()   
    {   
              alert("child.html--->I'm at child.html");   
    } function callParent() {
       parent.say();
       } 
    </script>   
    </head>   
    <body>   
    <input   type=button   value="调用parent.html中的say()函数"   onclick="callParent()">   
    </body>   
    </html>
     
      

  3.   

    在Article.aspx放一个HiddenField
    当文件上传成功后,将保存文件的路径字符串赋给这个HiddenField,例如:protected void ButtonUpload_Click(object sender, EventArgs e)//上传按钮的Click事件
    {
        //上传的代码我就不写了
        if(上传成功)
        {
            this.ClientScript.RegisterStartupScript(typeof(string),"file",
                   "window.parent.document.getElementById('HiddenField的ID').value='"+文件路径+"';",true);
        }
    }然后你在Article.aspx中取这个HiddenField的值即可
      

  4.   


    我明白您的意思,是在FileUpFile.aspx中方一个HiddenField,但是怎么在Article.aspx中读取这个个隐藏域的值呢?
      

  5.   


    我没有写错,是在父页面Article.aspx中放HiddenField,你可以自己先试试
      

  6.   


    应该是给子页面和父页面也就是FileUpload.aspx和Article.aspx分别放一个HiddenFiled吧?父页面中的HiddenFiled用于保存传递过来的值,然后用于判断条件?
      

  7.   

    对,你要是在子页面已经写好了将路径写入子页面的HiddenField的方法的话,那就在父页面也加一个HiddenField来获取这个子页面的HiddenField的值,我6楼的代码就是为了省去在子页面加HiddenField这一步,直接将值传到父页面去了