问题描述
用的是AjaxControlToolkit的AsyncFileUpload。UpdatePanel里面有个Literal,我需要的效果就是当我上传完毕,在这个Literal里面显示某些信息。protectedvoidAsyncFileUpload1_UploadedComplete(objectsender,AjaxControlToolkit.AsyncFileUploadEventArgse){Literal1.Text="Uploadcompleted.";}
然后实际我做的时候发现页面上的Literal没有任何显示,但是我调试又发现Literal.Text确实是被赋值了……而且我添加这样一个东西:protectedvoidUpdatePanel1_PreRender(objectsender,EventArgse){Literal1.Text+="wtf...";}
然后添加断点,发现每次上传完成后,程序确实运行到了这个位置,也就是说其实UpdatePanel确实是刷新了?……但是为什么Literal却没有显示?请问各位大神,是否能做出我想要的效果?原理上是不是不能这样设计啊……
解决方案
解决方案二:
刚刚我又看了一下外国人问的同样的问题,别人回答大概是说:AsyncFileUpload用的是Iframe之类的东西上传的,然后事件是在Iframe中触发,不在当前页面触发,所以无法更新当前页面的内容……如果实在需要更新必须强制触发PostBack……不是很明白,给跪了,有没有简单点的解决方案?……
解决方案三:
目前只能在AsyncFileUpload的客户端事件:onuploadedcomplete中执行jquery代码,然后jquery再触发一个Button的click事件,然后UpdatePanel的Trigger包含Button的Click事件……但是感觉这是绕弯啊,不规范啊感觉……求各位大神给个漂亮的解决方案。
解决方案四:
iframeajax