ASP.NET AJAX 与 FileUpload

news/2024/7/5 10:41:52
FileUpload放在updatepanel中,回调时发现上其属性hasfile为false。解决方案如下:

方案一、如果将scriptmanager的enablepartialrending设为false则可以正确上传,这个方法最简单,但是会有缺陷,就是在同一个页面上的多个UpdatePanel不可以独自刷新了。另外,当你的UpdatePanel中存在Validator的话,会造成整个页面postback,这个问题似乎是Altas的一个bug.

方案二、摘自http://www.netfocus.cn/article950.html

1:主页面中使用UpdatePanel,然后UpdatePanel里面放置的不是FileUpload控件,而是一个Iframe
2:这个iframe在链接一个新的页面,那个页面里面有FileUpload控件。
3:上传完毕后,告诉主页面上传得结果

先看一个直接使用FileUpload的例子:这个例子里面,服务端是无法找到上传文件的。

             < atlas:UpdatePanel  ID ="up1"  Mode ="Conditional"  runat ="server" >
                
< ContentTemplate >
                    
< asp:FileUpload  ID ="FileUpload1"  runat ="server"   />
                    
< asp:Button  ID ="Button1"  runat ="server"  Text ="Button"  OnClick ="Button1_Click"   />
                 
< SPAN>ContentTemplate>
            
< SPAN>atlas:UpdatePanel>


看看,我们该如何实现
1:新建主页面Default.aspx
      在适当的位置,放置一个上传附件的UpdatePanel区域
     

             < atlas:UpdatePanel  ID ="up_attachment"  Mode ="Conditional"  runat ="server" >
                
< ContentTemplate >
                   
< iframe  id ="file"  name ="file"  src ="attachment.aspx" >< SPAN>iframe>
                
< SPAN>ContentTemplate>
            
< SPAN>atlas:UpdatePanel>

2:新建上传文件的页面attachment.aspx,然后放上FileUpload控件

< div >
    
< asp:FileUpload  ID ="FileUpload1"  runat ="server"   />
          
< asp:Button  ID ="Button1"  runat ="server"  Text ="OK"  OnClick ="Button1_Click"   />
    
< SPAN>div>

3:在attachment.aspx里面,上传文件之后调用主页面的js,报告上传情况。这是函数原型:

     < script >
      window.top.callBack(fileName);
    
< SPAN>script>

4:Default.aspx主页面里面增加这个函数,处理返回值
  

     < script >
     function callBack(fileName)
  
{
        document.getElementById(
'Attach1').innerHTML=fileName;
     }

    
< SPAN>script>

http://www.niftyadmin.cn/n/2404691.html

相关文章

导出excel的四种方法

据我现在所知excel有四种方法&#xff1a;1.自己写的excel接口&#xff0c;客户端不需要装excel&#xff0c;见灵感之源的blog:http://www.cnblogs.com/unruledboy/archive/2004/07/07/22093.aspx 2.把web上的DataGrid直接导入到excelpublic void ExportToExcel(System.Web.UI…

GridView 72般绝技,Javascript与asp.net 实现Ajax多文件无刷新上传,在ASP.NET中执行URL重写经典方案

C#精髓 第四讲 GridView 72般绝技 http://blog.csdn.net/cngkqy/archive/2008/11/24/3360965.aspx Javascript与asp.net 实现Ajax多文件无刷新上传 http://blog.csdn.net/cngkqy/archive/2008/02/01/2076597.aspx 在ASP.NET中执行URL重写经典方案 http://blog.csdn.net/cngk…

PHP手册翻译日记[3]

所有编译错误清除。我处理错误时顺便文件翻译了&#xff0c;保持与英文版的同步。Altair也处理了很多文件&#xff0c;但未同步。 向PHP文档组负责人Philip Olson申请将中文手册放回官方站点&#xff0c;但被告知还要等一些关键文件与英文版同步后才行。 Hello guys,Good job w…

前端入门——快速理解H5+css中的旋转

前端入门——快速理解H5css中的旋转 ​ 说到旋转&#xff0c;那么必然要确定两个条件&#xff0c;旋转原点 和 旋转方向。 ​ 旋转原点&#xff1a; 顾名思义&#xff0c;即旋转是绕着哪个点来进行旋转的 ​ 旋转方向&#xff1a; 即绕着哪个方向进行旋转的 ​ ​ 实现效果…

对IP及IP段进行访问限制

本来是写了几个函数&#xff0c;IP黑名单是记到库里的&#xff0c;为了方便理解&#xff0c;改成了一个class把IP黑名单写了出来。 192.168.1.1 单个IP 192.168.1.* 这样代理 192.168.1.1-192.168.1-255 192.158.1.2-20 这样是代表192.158.1.2-192.158.1.20 也可以这样写 192.1…

弹性盒中 flex详解及flex:1的用法解析

弹性盒中 flex详解及flex&#xff1a;1的用法解析 一、flex 在了解 flex&#xff1a;1 之前我们先了解一下flex的属性值有哪些&#xff0c;就如同background一样&#xff0c;有着backgournd-images、background-color、background-position等属性名一样&#xff0c; flex也有…

JavaScript:自增和自减

JavaScript&#xff1a;自增和自减 我一直以为我已经搞明白了自增和自减&#xff0c;直到有一次遇到一道题&#xff0c;我才发现我对于自增和自减并没有完全掌握。 来看看下面这道题&#xff1a; var a 2;console.log(a a a a --a a-- a);你知道答案是多少吗&#xff1f;&a…

c# XML序列化与反序列化

原先一直用BinaryFormatter来序列化挺好&#xff0c;可是最近发现在WinCE下是没有办法进行BinaryFormatter操作&#xff0c;很不爽&#xff0c;只能改成了BinaryWriter和BinaryReader来读写&#xff0c;突然想到能不能用XML来序列化&#xff1f;于是在网上查了些资料便写了些实…