首页 新闻 赞助 找找看

c# 弹出下载窗口后,就无法提交form,谁知到怎么回事???高手请回答。

0
悬赏园豆:10 [已解决问题] 解决于 2012-11-09 15:21

 

如图所示:

   1.单击down连接,会弹出下载提示框,然后不管下载提示框做了什么处理后,再单击clear(c#,asp.net服务器控件) 都不会执行后台事件,观察了一下好像是表单不提交, 此处使用的是 linkbutton, 编译后为  __dopostback("link_Attachment","") 没有回发,测试了很多种方法都不行,总之不执行后台。

 

代码如下:

js下载代码如下:

 /// 下载File
        function JsDownloadFile(type) {
            var fileType = "";
            var fileName = "";
            var newFileName = "";

            if (type == "Attachment") {
                 fileType = "AdminTenderAttachment";
                 fileName = document.getElementById('<%= hf_Attachment_Name.ClientID %>').value;
                 newFileName = document.getElementById('<%= hf_New_Attachment_Name.ClientID %>').value;
            }

            if (fileType != "" && fileName != "" && newFileName != "") {
                  window.location.href = "../../Common/DownLoad.aspx?FileType=" + encodeURIComponent(fileType) + "&FileName=" + encodeURIComponent(fileName) + "&NewFileName=" + encodeURIComponent(newFileName) + "&sid=" + Math.random();
            }

            //return false;    /******此处return false 貌似没用*****/
        }

 

第一种方法:

  <a href="javascript:void(0)" onclick="JsDownloadFile('Attachment');">
Download</a>
  <asp:LinkButton ID="link_Attachment" runat="server" OnClick="link_Attachment_Click">Clear</asp:LinkButton>

protected void link_Attachment_Click(sender e ,EventArgs e)

{

      RemoveAttachmentFile("Attachment")

}

 

第二种方案:因为是linkbtn 不回发的问题,通过另外js触发,后台事件,结果也不行,得到结果,貌似不提交form表单吧,

  <a href="javascript:void(0)" onclick="JsDownloadFile('Attachment');">
Download</a>
  <a href="javascript:void(0)" onclick="myclick()">Clear</a>
  <asp:Button ID="btn_Attachment" runat="server" OnClick ="btn_Attachment_Click"  style="display:none/>                                            <script type="text/javascript" language ="javascript">
 function myclick()

{
      var obj = document.getElementById("btn_Attachment");
      obj.click();
  }
</script>
                

 大家有知道的,不防请直说, 这个小问题,还真把人整住了。 不会发,不提交后台,就没办法执行后台事件。  同时也想吧这个问题弄清楚,到底怎么回事,我自己在研究,大家可以说说自己的看法。

3.  alert(123)都执行了,就是没执行click事件,可见没有提交表单~!

<a href="javascript:void(0)" onclick="JsDownloadFile('Attachment');">
Download</a>
  <a href="javascript:void(0)" onclick="myclick()">Clear</a>
  <asp:Button ID="btn_Attachment" runat="server" OnClick ="btn_Attachment_Click"  style="display:none/>                                            <script type="text/javascript" language ="javascript">
 function myclick()

{
      var obj = document.getElementById("btn_Attachment");
      obj.click();

      alert(123)       /*******************************************/
  }
</script>

blue_sky_alf的主页 blue_sky_alf | 初学一级 | 园豆:72
提问于:2012-11-09 11:03
< >
分享
最佳答案
0

怎么会呢,JsDownloadFile是怎么写的

收获园豆:10
向往-SONG | 老鸟四级 |园豆:4853 | 2012-11-09 11:10

发布了js下载代码,是通过访问我的公用下载页面下载的。

blue_sky_alf | 园豆:72 (初学一级) | 2012-11-09 11:14
其他回答(2)
0

jsdownloadfile跳转到新的页面了啊。新页面里面clear事件定义了?

飞来飞去 | 园豆:2057 (老鸟四级) | 2012-11-09 11:19

clear ,方案一用的是linkbutton 啊,link_Attachment_Click  下面有后台代码,

         方案二用的是   《a》 连接,单击触发js ,通过js触发后台  myclick=obj.click(),也没执行, 后台都是同一个事件的。  

支持(0) 反对(0) blue_sky_alf | 园豆:72 (初学一级) | 2012-11-09 11:22

clear ,方案一用的是linkbutton 啊,link_Attachment_Click  下面有后台代码,

         方案二用的是   《a》 连接,单击触发js ,通过js触发后台  myclick=obj.click(),也没执行, 后台都是同一个事件的。  

 

clear 没在跳转页面里,在当前页面执行的~!    download会跳转到我公用的下载页面,clear会在当前页面执行清楚的,当前页后台有代码的。

支持(0) 反对(0) blue_sky_alf | 园豆:72 (初学一级) | 2012-11-09 11:23
0

通过火狐浏览器的步步检测和调试,最终发现,  response.writeFile()  输出的文件,如果有框架的话,一定要用父框架捕捉,

 window.partentlocation.href = "";

blue_sky_alf | 园豆:72 (初学一级) | 2012-11-09 15:20

window.partent.location.href = "";

支持(0) 反对(0) blue_sky_alf | 园豆:72 (初学一级) | 2012-11-09 15:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册