原文链接

http://www.jb51.net/article/95983.htm

大体思路:

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
  }

转载于:https://www.cnblogs.com/sjqq/p/6361198.html

jquery配合.NET实现点击指定绑定数据并且能够一键下载相关推荐

  1. php js获取表单内容,jquery form表单获取内容以及绑定数据_javascript技巧

    在日常开发的过程中,难免会用到form表单,我们需要获取表单的数据保存到数据库,或者拿到后台的一串json数据,要将数据绑定到form表单上,这里我写了一个基于jquery的,formHelp插件,使 ...

  2. echarts asp mysql 源码_如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)...

    ECharts地图主要用于地理区域数据的可视化,展示不同区域的数据分布信息.ECharts官网提供了中国地图.世界地图等地图数据下载,通过js引入或异步加载json文件的形式调用地图. 本文将结合实例 ...

  3. uniapp-自定义下拉菜单,点击选项绑定数据

    生成展示: view部分 <template><view class="body"><view class="gender"> ...

  4. 05 HTML字符串转换成jQuery对象、绑定数据到元素上

    1 要求 将一段 HTML脚本 封装成一个字符串,将这个字符串转换成一个jQuery对象:然后将这个jQuery对象添加到指定的元素中去 2 步骤 定义字符串 var str = '<div i ...

  5. jQuery源码解析之on事件绑定

    本文采用的jQuery源码为jquery-3.2.1.js jquery的on方法用来在选定的元素上绑定一个或多个事件处理函数. 当参数selector存在时,通常会用来对已经存在的元素或将来即将添加 ...

  6. 【jQuery】前端项目实践案例1——使用jQuery制作Tab选项卡点击切换效果

    1.实现效果: 案例描述:当用户单击不同的导航时,与其对应的内容回相应的呈现. 案例要求:使用jquery制作实现tab选项卡单击切换效果. 2.实现思路: (1)div+css布局,制作选项卡和对应 ...

  7. 一款基于jquery的下拉点击改变背景图片

    今天给大家介绍一款基于jquery的下拉点击改变背景图片.单击右上角的图片,下拉显示可选择的背景图片,单击图片变为背景图.效果图下: 在线预览   源码下载 实现的代码. html代码: <a ...

  8. php jquery点击事件,jQuery操作html元素点击事件详解

    这次给大家带来jQuery操作html元素点击事件详解,jQuery操作html元素点击事件的注意事项有哪些,下面就是实战案例,一起来看一下. 移除或禁用html元素的点击事件可以通过css实现也可以 ...

  9. 数据绑定(三)为Binding指定绑定源的几种方法

    原文:数据绑定(三)为Binding指定绑定源的几种方法 Binding的源是数据的来源,所以,只要一个对象包含数据并能通过属性把数据暴露出来,它就能当作Binding的源来使用,常用的办法有: 一. ...

最新文章

  1. nginx location配置 - ttlsa教程系列之nginx
  2. 国立华侨大学校长写给2010届毕业生的话:人生的二和三
  3. python手机号码正确编程_python 小练习之生成手机号码
  4. 移动硬盘计算机无法打开硬盘,移动硬盘无法识别
  5. 其中一个页签慢_VBA实战技巧15:创建索引页
  6. 联合体(union)和结构体(struct)的区别
  7. # CF1572B Xor of 3(构造)
  8. Java虚拟机(七)——本地方法接口与本地方法栈
  9. 抖音直播APP软件系统为什么能这么火?反映出的问题又会是什么?
  10. php 40163,微信支付授权获取 openId {errcode:40163,errmsg:code been used, hints: [ req_id: scqL1a02482017...
  11. 反向代理实现同域名下PHP和Java共存
  12. 【路径规划】基于matlab HybridA_Star算法机器人路径规划【含Matlab源码 1390期】
  13. 闲谈 Kubernetes 的主要特性和经验分享
  14. 堆溢出 对HeapFree函数的详细调试
  15. 2021-08-11好奇心
  16. 算法39-快速求次幂运算
  17. 【视频教程】Win10系统需要关闭的功能,常规隐私 win10电脑怎么关闭隐私选项
  18. python版本的判断、选择指南
  19. 第五次任务之三大抽样分布
  20. webview 禁用横竖屏切换_Android 禁止横竖屏切换

热门文章

  1. java 文件随机读取_Java 实现文件随机读写-RandomAccessFile
  2. 无法检测或故障_电热水壶故障检修分析。
  3. mysql snmp agent_WebNMS SNMP Micro Agent for MySQL - MySQL Management Console
  4. shell sqlplus执行sql文_各主流数据库非交互执行
  5. 双风扇安装图解_汽车灯光标志图解,汽车灯光标志大全图解
  6. 基于消息队列 RocketMQ 的大型分布式应用上云较佳实践
  7. KubeCon 北美前瞻|在 2020 最后,容器领域有哪些值得你关注的话题?
  8. Kubernetes 会不会“杀死” DevOps?
  9. 台式电脑不拉网线上网_在家里想不拉宽带用无线上网,试试这几招?
  10. android仿知乎按钮动效,Android仿知乎客户端关注和取消关注的按钮点击特效实现思路详解...