接手了一个新项目,需要在老项目中增添几个新页面
由于在母版页中的updatepanel包住了子版页
同时updatepanel并不支持文件上传,因此要额外增加一些设置
具体的情况可以参考这篇博客
https://www.cnblogs.com/insus/p/3208744.html
下面针对我自己的情况进行设置
前端控件的设置:
母版页的设置:
将 asp:ToolkitScriptManager 的 AjaxFrameworkMode 属性设置为 enabled 即可
1 <asp:ToolkitScriptManager ID="tsm" runat="server" AjaxFrameworkMode="Enabled" AsyncPostBackTimeout="1800" EnablePartialRendering="true" LoadScriptsBeforeUI="true" ScriptMode="Auto">asp:ToolkitScriptManager>
子版页的设置:
updatepanel要被包含在
额外的再在文件上传的控件外层套一个updatepanel,并将其updatemode设置为conditional
同时加入
1 <td class="td_title" >文件上傳td> 2 <td class="td_content" colspan="3"> 3 4 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 5 <ContentTemplate> 6 <asp:FileUpload ID="SQE_FileUpload" runat="server" /> 7 8 ContentTemplate> 9 <Triggers> 10 <%--//可以指向模板外的控件,該功能是防止回傳刷新后導致獲取不到文件--%> 11 <asp:PostBackTrigger ControlID="SIMP_submit" /> 12 Triggers> 13 asp:UpdatePanel> 14 td>
后端代码实现:
1 //整個子版都處於updatepanel中,而updatepanel并不支持上傳,要另行設置,已設置完畢,具體參考aspx頁面 2 protected void SQE_Uploadfiles()//將文件上傳的功能封裝在這裡進行調用即可 3 { 4 #region 上傳文件事件 5 if (SQE_FileUpload.HasFile)//判斷有無文件 6 { 7 string fileName = SQE_FileUpload.PostedFile.FileName;//獲取文件名 8 string fileType = fileName.Substring(fileName.LastIndexOf(".") + 1);//獲取文件類型 9 string SUPath = ConfigurationManager.AppSettings["SIMPUserUpload"].ToString().Replace("~/", "");//獲取服務器存放文件的路徑 10 string Newfilefolder = Path.GetFullPath(SUPath + Abnormal_No.Text);//轉換成正確的文件夾路徑,..\Files\SIMPUserUpload\"流水號" 11 string NewfileName = Abnormal_No.Text + "." + fileType;//文件名(流水號).(文件類型) 12 string NewfilePath = Newfilefolder + "\\" + NewfileName;//在..\Files\SIMPUserUpload\"流水號"\文件夾中放入文件 13 14 if (!Directory.Exists(Newfilefolder))//檢查有無該文件夾,如果沒有就自動創建 15 { 16 try 17 { 18 Util.CreateDirectory(Newfilefolder); 19 } 20 catch (Exception x) 21 { 22 //ShowMessage("創建文件夾失敗!"); 23 UFstate = "1"; 24 return; 25 } 26 } 27 28 try 29 { 30 SQE_FileUpload.SaveAs(NewfilePath);//存儲文件到該路徑下 31 //ShowMessage("上傳成功!"); 32 Fpath = NewfilePath;//回傳路徑 33 return; 34 } 35 catch (Exception ex) 36 { 37 //ShowMessage("上傳失敗 !"); 38 UFstate = "2"; 39 return; 40 41 } 42 43 } 44 else 45 { 46 return; 47 //ShowMessage("请选择要上传的文件!"); 48 //Response.Write("请选择要上传的文件!
"); 49 } 50 51 #endregion 52 }