日期:2014-05-17  浏览次数:21009 次

难道ajax里的updatepanel是奇葩?
今天纠结了一天,本来想弄个图片的预览的(asp的),用了个fileupload控件,用个image,一个button控件,在fileupload加载图片获取图片的路径,点击预览都没问题,但是我发现页面刷新了,然后我就想让页面就图片那部分在点击的时候刷新,我就想起了ajax里的updatepanel拉了用了,但是就是不显示图片,然后我断点了试下,原来是fileupload里的filename获取不了,后来我删了updatepanel然后试下又可以获取fileupload里的filename了,然后我google了下都没找到方法,所以想问下是不是updatepanel是个另类的奇葩,另外问下,脚本里fileupload控件的filename要怎么写,是直接fileupload.filename?还是value?求指导
asp

------解决方案--------------------
UpdatePanel控件只支持普通的 Post 回发,不支持 multipart/form-data 方式的回发,因此也不支持  FileUpload控件。
------解决方案--------------------
如果要使用 FileUpload,你可以使用 IFrame,在里边嵌入独立的一个 aspx(页面上只有 FileUpload),这可以做到局部刷新。
------解决方案--------------------
嵌入的aspx在获得上传的文件之后,页面重新刷新,则可以通过javascript访问 window.parent.xxxxx() 方法,也就是通知外部aspx说“我上传了数据,数据id是1238427349,请刷新页面”。这样外部的aspx就可以显示一下结果,例如通过修改图片的src来显示上传的大图片,或者通过Ajax来取得数据更新到dom,或者干脆回发页面(例如触发Button的客户端click,或者执行 _postback 之类的)。