接手了一个新项目,需要在老项目中增添几个新页面

由于在母版页中的updatepanel包住了子版页

同时updatepanel并不支持文件上传,因此要额外增加一些设置

具体的情况可以参考这篇博客

https://www.cnblogs.com/insus/p/3208744.html

下面针对我自己的情况进行设置

前端控件的设置:

母版页的设置:

将 asp:ToolkitScriptManager 的 AjaxFrameworkMode 属性设置为 enabled 即可

 <asp:ToolkitScriptManager ID="tsm" runat="server" AjaxFrameworkMode="Enabled" AsyncPostBackTimeout="1800" EnablePartialRendering="true" LoadScriptsBeforeUI="true" ScriptMode="Auto"></asp:ToolkitScriptManager>

子版页的设置:

updatepanel要被包含在<td>标签内,否则会出错(可能是我的框架太老或者其他原因)

额外的再在文件上传的控件外层套一个updatepanel,并将其updatemode设置为conditional

同时加入<trigger>指向实现上传方法的控件,防止因为postback将文件给刷新掉从而获取不到文件

           <td class="td_title" >文件上傳</td>
                 <td class="td_content" colspan="3">
                     <!--加入這個UpdatePanel防止被PostBack刷掉文件,導致獲取不到文件--><!--可以指向UpdatePanel外的控件-->
                     <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                         <ContentTemplate>
                             <asp:FileUpload ID="SQE_FileUpload" runat="server" /> 

                         </ContentTemplate>
                         <Triggers>
                             <%--//可以指向模板外的控件,該功能是防止回傳刷新后導致獲取不到文件--%>
                             <asp:PostBackTrigger ControlID="SIMP_submit" />
                         </Triggers>
                     </asp:UpdatePanel>
                 </td>

后端代码实现:

 //整個子版都處於updatepanel中,而updatepanel并不支持上傳,要另行設置,已設置完畢,具體參考aspx頁面
         protected void SQE_Uploadfiles()//將文件上傳的功能封裝在這裡進行調用即可
         {
             #region 上傳文件事件
             if (SQE_FileUpload.HasFile)//判斷有無文件
             {
                 string fileName = SQE_FileUpload.PostedFile.FileName;//獲取文件名
                 );//獲取文件類型
                 string SUPath = ConfigurationManager.AppSettings["SIMPUserUpload"].ToString().Replace("~/", "");//獲取服務器存放文件的路徑
                 string Newfilefolder = Path.GetFullPath(SUPath + Abnormal_No.Text);//轉換成正確的文件夾路徑,..\Files\SIMPUserUpload\"流水號"
                 string NewfileName = Abnormal_No.Text + "." + fileType;//文件名(流水號).(文件類型)
                 string NewfilePath = Newfilefolder + "\\" + NewfileName;//在..\Files\SIMPUserUpload\"流水號"\文件夾中放入文件

                 if (!Directory.Exists(Newfilefolder))//檢查有無該文件夾,如果沒有就自動創建
                 {
                     try
                     {
                         Util.CreateDirectory(Newfilefolder);
                     }
                     catch (Exception x)
                     {
                         //ShowMessage("創建文件夾失敗!");
                         UFstate = ";
                         return;
                     }
                 }

                 try
                 {
                     SQE_FileUpload.SaveAs(NewfilePath);//存儲文件到該路徑下
                     //ShowMessage("上傳成功!");
                     Fpath = NewfilePath;//回傳路徑
                     return;
                 }
                 catch (Exception ex)
                 {
                     //ShowMessage("上傳失敗 !");
                     UFstate = ";
                     return;

                 }               

             }
             else
             {
                 return;
                 //ShowMessage("请选择要上传的文件!");
                 //Response.Write("<p >请选择要上传的文件!</p>");
             }

             #endregion
         }

最新文章

  1. backup daily
  2. Kafka实战系列--Kafka API使用体验
  3. Queue、进程、线程、协程
  4. mysql输入密码后闪退怎么办?
  5. 常用的android弹出对话框
  6. 《ASP.NET MVC4 WEB编程》学习笔记------Web API 续
  7. git简单使用和说明文件的书写
  8. http://www.cnblogs.com/youfan/articles/3216816.html
  9. Problem:To Connect with MySQL in Virtual PC Environment
  10. 如何利用自己的电脑做服务器发布tomcat的WEB项目供外网访问
  11. Qt之日志输出窗口
  12. spark 1.6 idea本地运行错误
  13. python连接impala(安装impyla)
  14. 【Jquery系列】详解Jquery对象和Dom对象
  15. vue keep-alive 取消某个页面缓存问题
  16. SSM框架-MyBatis框架数据库的增删查改操作
  17. 有哪些api接口可以实现微信自动唤醒浏览器,下载app,打开网页
  18. 使用redis接管session
  19. git删除仓库的某个文件
  20. C#的委托(delegate、Action、Func、predicate)

热门文章

  1. 2017 CVTE Windows开发一面 3.7
  2. lazarus中的TSQLQuery注意事项
  3. CSS的相关知识——背景,超链接,列表,表格,奇偶选择器
  4. D. Tokitsukaze, CSL and Stone Game ( 取石子游戏?no,更像棋盘游戏 )
  5. AngularJS基础语法
  6. Angular 应用的外壳
  7. create-react-app 构建的项目使用 css module 方式来书写 css
  8. python解析字体反爬
  9. [CSP-S模拟测试]:集合合并(记忆化搜索)
  10. 关于Hibernate中Java实体类加载出现序列化异常