UpdatePanel里使用FileUpload
生活随笔
收集整理的這篇文章主要介紹了
UpdatePanel里使用FileUpload
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
今天碰到一個問題: FileUpload放在updatepanel中,回調(diào)時發(fā)現(xiàn)上其屬性hasfile為false。解決方案如下: 在UpdatePanel里面需要上傳文件。大家應(yīng)該知道UpdatePanel里面是不可以上傳文件的!不過我們可以變換下就可以了!
???? <ContentTemplate>????????????????????????
???????????? <asp:FileUpload ID="FileUpload1" runat="server" />????
????????????????????<asp:Button ID="Button1" runat="server" Text="上傳" οnclick="Button1_Click" />????????????????????????????????????????????</ContentTemplate>????????????????
????????????????????????????????</asp:UpdatePanel> C#代碼如下:也是最關(guān)鍵的 PostBackTrigger trigger = new PostBackTrigger();
????????????????????????trigger.ControlID = Button1.UniqueID;
????????????????????????UpdatePanel1.Triggers.Add(trigger);???? 這里記得一定別放在if(!IsPostBack)里面。 下面說下c#代碼:就是給UpdatePanel增加一個回發(fā)控件,那為什么要用Button1.UniqueID。是應(yīng)為如果你這個控件放在一些面板控件里面,UpdatePanel是找不到回發(fā)控件的ID的。
?
方案一、如果將scriptmanager的enablepartialrending設(shè)為false則可以正確上傳,這個方法最簡單,但是會有缺 陷,就是在同一個頁面上的多個UpdatePanel不可以獨自刷新了。另外,當(dāng)你的UpdatePanel中存在Validator的話,會造成整個頁 面postback,這個問題似乎是Altas的一個bug. 方案二、摘自http://www.netfocus.cn/article950.html 1:主頁面中使用UpdatePanel,然后UpdatePanel里面放置的不是FileUpload控件,而是一個Iframe 2:這個iframe在鏈接一個新的頁面,那個頁面里面有FileUpload控件。 3:上傳完畢后,告訴主頁面上傳得結(jié)果先看一個直接使用FileUpload的例子:這個例子里面,服務(wù)端是無法找到上傳文件的。<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>看看,我們該如何實現(xiàn) 1:新建主頁面Default.aspx在適當(dāng)?shù)奈恢?#xff0c;放置一個上傳附件的UpdatePanel區(qū)域<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里面,上傳文件之后調(diào)用主頁面的js,報告上傳情況。這是函數(shù)原型:<script>window.top.callBack(fileName);< SPAN>script> 4:Default.aspx主頁面里面增加這個函數(shù),處理返回值<script>function callBack(fileName){document.getElementById('Attach1').innerHTML=fileName;}< SPAN>script> 方案三 ASPX代碼如下:(跟正常的代碼是沒有什么區(qū)別的!) <asp:UpdatePanel ID="UpdatePanel1" unat="server">???????????? <ContentTemplate>????????????????????????
???????????? <asp:FileUpload ID="FileUpload1" runat="server" />????
????????????????????<asp:Button ID="Button1" runat="server" Text="上傳" οnclick="Button1_Click" />????????????????????????????????????????????</ContentTemplate>????????????????
????????????????????????????????</asp:UpdatePanel> C#代碼如下:也是最關(guān)鍵的 PostBackTrigger trigger = new PostBackTrigger();
????????????????????????trigger.ControlID = Button1.UniqueID;
????????????????????????UpdatePanel1.Triggers.Add(trigger);???? 這里記得一定別放在if(!IsPostBack)里面。 下面說下c#代碼:就是給UpdatePanel增加一個回發(fā)控件,那為什么要用Button1.UniqueID。是應(yīng)為如果你這個控件放在一些面板控件里面,UpdatePanel是找不到回發(fā)控件的ID的。
本文出自 “lee” 博客,請務(wù)必保留此出處http://leehai.blog.51cto.com/757045/153736
轉(zhuǎn)載于:https://www.cnblogs.com/freedom831215/archive/2011/01/24/1942981.html
總結(jié)
以上是生活随笔為你收集整理的UpdatePanel里使用FileUpload的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux文件系统 环形结构图,环形缓冲
- 下一篇: 风讯dotNETCMS源码分析—数据存取