转 :http://blog.orgact.com/leisang/archive/2007/10/19/00000001.html
首先我很遗憾的告诉大家,因为微软的偷懒,目前UpdatePanel还不支持文件上传。变相的解决办法就是UpdatePanel中设置PostBackTrigger:
而如果你又想在这个UpdatePanel上做点花样,比如加了一个asp:Panel, 可以通过按钮事件触发隐藏或显示的,你会发现FileUpload1并不能找到文件。。。
其实道理很简单,UpdatePanel中的内容是通过XmlHttp实时填充的,在你让他显示之前,查看页面源代码里面是空的。一个动态控件更新普通数据没问题,但上传文件就不行了,我的解决办法是用普通div代替asp:Panel,并写了2个函数来动态发送控制脚本,按钮事件中只要调用该函数即可:
private void ShowPanel() { string script = "document.getElementById('Panel1').style.display='';"; ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "ShowPanel", script, true); } private void ClosePanel() { string script = "document.getElementById('Panel1').style.display='none';"; ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "ClosePanel", script, true); }