日期:2014-05-18  浏览次数:20324 次

UpdatePanel出错
C# code
Stream fileDataStream = this.FileUpload1.PostedFile.InputStream;
byte[] fileData = new byte[fileDataStream.Length];
fileDataStream.Read(fileData, 0, fileData.Length);
fileDataStream.Seek(0, SeekOrigin.Begin);

这段代码放在updatepanel里就出错,不用updatepanel不舒服,请教有什么办法吗?

------解决方案--------------------
updatepanel上传文件
参考
http://www.cnblogs.com/JeffreyZhao/archive/2007/03/26/AjaxUploadHelper_Prototype.html
------解决方案--------------------
UpdatePanel不支持FileUpload。你可以单独写一个aspx,在一个IFrame中(固定宽度、高度)显示这个aspx,并且写一两行javascript代码使得这个aspx在上传完成(回发页面之后在客户端下载结果页面时)查找上一级的frame的document中的特定控件触发事件,例如找到父页面的一个<asp:Button>并执行其click()方法来通知父页面。
------解决方案--------------------
实际上,使用IFrame时本身跟UpdatePanel没有任何关系,IFrame中的aspx可以使用看似“无刷新”的方式上传文件,只是因为IFrame只占父页面上很小的区域(在ie上你还是能够看到浏览器的进程状态栏闪动)。如果将那个用于获取文件上传结果事件的Button放入UpdatePanel,这才是UpdataPanel,但是,这是中间的桥梁已经将UpdatePanel跟FileUpload分离开成为无关的东西了。