1: UpdatePanel 和 FileUpload 不兼容
包含在ajax控件UpdatePanel中的input type=file的value值获取不到的问题。换成asp.net中的FileUpload控件也同样也获取不到值 调试的结果显示他们的值都为空
|
http://topic.csdn.net/u/20100304/18/fa8569fb-c6b0-444f-85f9-b7926689efba.html
ASPX代码如下:(跟正常的代码是没有什么区别的!)
<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#代码如下:也是最关键的
PostBackTrigger trigger = new PostBackTrigger();
trigger.ControlID = Button1.UniqueID;
UpdatePanel1.Triggers.Add(trigger);
这里记得一定别放在if(!IsPostBack)里面。
或者加入
<Triggers>
<asp:PostBackTrigger ControlID="btn_upload" />
</Triggers>
MSDN如是说:使用PostBackTrigger 控件可使 UpdatePanel 内部的控件导致回发,而不是执行异步回发。
在这种情况下向客户端输出js只能用ClientScript.RegisterStartupScript了
2:如有updatepanel vb 输出js 只能用
ScriptManager.RegisterClientScriptBlock(Me,GetType(Page), System.Guid.NewGuid().ToString(),"var div = document.getElementById('dialog');div.style.display = 'block';div.style.width='100%';div.style.height = '950px';div.style.border = '1px solid black';",True)
ClientScript.RegisterStartupScript无效
ClientScript.RegisterStartupScript(ClientScript.GetType(), System.Guid.NewGuid().ToString(), "<script>var div = document.getElementById('dialog');div.style.display = 'block';div.style.width='100%';div.style.height = '950px';div.style.border = '1px solid black';</script>")