在updatepanel中使用fileupload控件
方案一、如果將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的例子:這個例子里面,服務端是無法找到上傳文件的。
????????????????<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區域
????????????????<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>
?
?
?
轉載于:https://www.cnblogs.com/yinpeng186/archive/2009/12/08/1619186.html
總結
以上是生活随笔為你收集整理的在updatepanel中使用fileupload控件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL数据类型详解
- 下一篇: Apache安装及jboss部署说明文档