成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導(dǎo)航首頁 ? 技術(shù)教程 ? jquery配合.NET實現(xiàn)點擊指定綁定數(shù)據(jù)并且能夠一鍵下載
全站頭部文字 我要出現(xiàn)在這里
jquery配合.NET實現(xiàn)點擊指定綁定數(shù)據(jù)并且能夠一鍵下載 720 2024-02-14   

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

效果圖如下:

查看圖片

大體思路:

1.jquery得到選中的綁定數(shù)據(jù)的id,將這個id賦值到數(shù)組中,最后將這個數(shù)組的值賦值給頁面中創(chuàng)建的隱藏變量

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

首先html中div根據(jù)后臺綁定

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

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

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

因為是后臺拼接的,把button也拼接在了后臺,后臺button 調(diào)用js

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

js觸發(fā)隱藏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)
      {
        //這里是循環(huán)得到指定需要下載的所有id
 
      }

      Download(list, ""+lblCourseName.Text+"相關(guān)附件材料.rar");
    }

public void ZipFileByCode()
    {
      MemoryStream ms = new MemoryStream();
      byte[] buffer = null;

      using (ZipFile file = ZipFile.Create(ms))
      {
        file.BeginUpdate();
        file.NameTransform = new MyNameTransfom();//通過這個名稱格式化器,可以將里面的文件名進(jìn)行一些處理。默認(rèn)情況下,會自動根據(jù)文件的路徑在zip中創(chuàng)建有關(guān)的文件夾。

        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)
    {
      //根據(jù)所選文件打包下載 
      MemoryStream ms = new MemoryStream();
      byte[] buffer = null;
      using (ZipFile file = ZipFile.Create(ms))
      {
        file.BeginUpdate();
        file.NameTransform = new MyNameTransfom();//通過這個名稱格式化器,可以將里面的文件名進(jìn)行一些處理。默認(rèn)情況下,會自動根據(jù)文件的路徑在zip中創(chuàng)建有關(guān)的文件夾。 

        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
  }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持綠夏網(wǎng)。



主站蜘蛛池模板: 青岛啤酒价格| 凯蒂猫壁纸| 五的词语| 素人片| 我的幸福婚约电影| 小野寺律| 《西湖的绿》宗璞| 打男孩光屁股| 国产高清一卡2卡3卡4卡乱码| 胡金铨最好的十部电影| 傻少爷大结局| 炊事班班长述职报告| 吻船| 女生宿舍2在线看| 我和我的祖国教案| 性的视频| 苏晓电视剧叫什么名字的| 老板娘2无间潜行| 挠胳肢窝肚子腰| 爱情天梯| 角膜塑形镜的价格| 泰国《永恒/eternity》| 老司机免费看视频| 假男假女 电影| 网络流行语| 无耻之徒豆瓣| 消防稳压罐安装图正规安装图| 我妻子的一切 电影| 陈冠希的艳照门| 美国电影《黑吃黑》在线观看| 豪血寺一族2出招表| kaori主演电影在线观看| 卢昱晓电视剧| 《火烛鬼》大结局| 情况不妙| 狂野殴美激情性bbbbbb| 女王的条件| jayden jaymes| 秀人网小逗逗集免费观看| 寻梦环游记英文名| 菊花台在线电视剧免费观看|

?。。≌鹃L長期在線接!!!

網(wǎng)站、小程序:定制開發(fā)/二次開發(fā)/仿制開發(fā)等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103