国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jquery配合.NET實現點擊指定綁定數據并且能夠一鍵下載

2019-11-20 08:38:12
字體:
來源:轉載
供稿:網友

最近在做培訓管理系統中遇到一個問題,需求需點擊綁定的數據,將指定的附件下載下來,并且是批量下載(綁定的數據非datagrid,后臺拼接的綁定)。

效果圖如下:

大體思路:

1.jquery得到選中的綁定數據的id,將這個id賦值到數組中,最后將這個數組的值賦值給頁面中創建的隱藏變量

2.后臺獲取到隱藏變量的值,并將它循環數組取值,得到綁定值的下載地址,最后打包下載

首先html中div根據后臺綁定

 <div id="downloadInfo" runat="server"></div>

 其次是下載附件的選擇,利用jquery實現,并且將值賦值給頁面中的隱藏變量,代碼如下:
 

// 下載附件的選擇  $attach = $("#download-list");  var arr = []  $attach.on('click', '.no', function () {    $(this).toggleClass('checked');//設置和移除,選中與不選中    if ($(this).hasClass('checked')) {      var guid = $(this).children("#hidAttachGuid").val();      arr.push(guid);//將guid添加到arr數組中          }    else    {//取消選中時      var guid = $(this).children("#hidAttachGuid").val();      var n = arr.indexOf(guid);      if (n != -1)      arr.splice(n, 1);//將指定不選中的guid移除arr數組    }    $("[id$='arrayGuid']").val(arr);  });

因為是后臺拼接的,把button也拼接在了后臺,后臺button 調用js

<button type='button' class='one-download' onclick='download()'>一鍵下載</button>function download() {      $("#btnDownload").click();    }

js觸發隱藏button事件

<span style="display: none">   <asp:Button ID="btnDownload" OnClick="btnDownload_Click" Text="確定" runat="server" />    <input type="text" id="arrayGuid" runat="server" /></span>

后臺一鍵打包下載代碼:

protected void btnDownload_Click(object sender, EventArgs e)    {      //ZipFileByCode();      string attachGuid = arrayGuid.Value;      string[] sArray = attachGuid.Split(',');           List<string> list = new List<string>();      foreach (string i in sArray)      {        //這里是循環得到指定需要下載的所有id       }      Download(list, ""+lblCourseName.Text+"相關附件材料.rar");    }
public void ZipFileByCode()    {      MemoryStream ms = new MemoryStream();      byte[] buffer = null;      using (ZipFile file = ZipFile.Create(ms))      {        file.BeginUpdate();        file.NameTransform = new MyNameTransfom();//通過這個名稱格式化器,可以將里面的文件名進行一些處理。默認情況下,會自動根據文件的路徑在zip中創建有關的文件夾。        file.Add(Server.MapPath("/Content/images/img01.jpg"));        file.CommitUpdate();        buffer = new byte[ms.Length];        ms.Position = 0;        ms.Read(buffer, 0, buffer.Length);      }      Response.AddHeader("content-disposition", "attachment;filename=test.zip");      Response.BinaryWrite(buffer);      Response.Flush();      Response.End();    }
private void Download(IEnumerable<string> files, string zipFileName)    {      //根據所選文件打包下載       MemoryStream ms = new MemoryStream();      byte[] buffer = null;      using (ZipFile file = ZipFile.Create(ms))      {        file.BeginUpdate();        file.NameTransform = new MyNameTransfom();//通過這個名稱格式化器,可以將里面的文件名進行一些處理。默認情況下,會自動根據文件的路徑在zip中創建有關的文件夾。         foreach (var item in files)        {          file.Add(item);        }        //file.Add(Server.MapPath("../../BigFileUpLoadStorage/1.png"));        file.CommitUpdate();        buffer = new byte[ms.Length];        ms.Position = 0;        ms.Read(buffer, 0, buffer.Length);      }      Response.AddHeader("content-disposition", "attachment;filename=" + zipFileName);      Response.BinaryWrite(buffer);      Response.Flush();      Response.End();    }

和pageload同層代碼

public class MyNameTransfom : ICSharpCode.SharpZipLib.Core.INameTransform  {    #region INameTransform 成員    public string TransformDirectory(string name)    {      return null;    }    public string TransformFile(string name)    {      return Path.GetFileName(name);    }    #endregion  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉环县| 三原县| 玉溪市| 加查县| 竹溪县| 乐业县| 郁南县| 石城县| 鹿泉市| 富顺县| 佳木斯市| 讷河市| 理塘县| 黄骅市| 洪湖市| 志丹县| 菏泽市| 宿迁市| 罗田县| 大新县| 玛曲县| 纳雍县| 扶风县| 南召县| 墨玉县| 通城县| 大厂| 方城县| 都安| 耒阳市| 曲松县| 藁城市| 建昌县| 渝中区| 阜南县| 鹤山市| 东丰县| 武宁县| 同江市| 永登县| 旌德县|