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

前端之家收集整理的这篇文章主要介绍了jquery配合.NET实现点击指定绑定数据并且能够一键下载前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近在做培训管理系统中遇到一个问题,需求需点击绑定的数据,将指定的附件下载下来,并且是批量下载(绑定的数据非datagrid,后台拼接的绑定)。

效果图如下:

大体思路:

1.jquery得到选中的绑定数据的id,将这个id赋值到数组中,最后将这个数组的值赋值给页面中创建的隐藏变量

2.后台获取到隐藏变量的值,并将它循环数组取值,得到绑定值的下载地址,最后打包下载

首先html中div根据后台绑定

其次是下载附件的选择,利用jquery实现,并且将值赋值给页面中的隐藏变量,代码如下:

添加到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

一键下载 function download() { $("#btnDownload").click(); }

js触发隐藏button事件

后台一键打包下载代码

List<string> list = new List<string>(); foreach (string i in sArray) { //这里是循环得到指定需要下载的所有id } Download(list,""+lblCourseName.Text+"相关附件材料.rar"); }
using (ZipFile file = ZipFile.Create(ms)) { file.BeginUpdate(); file.NameTransform = new MyNameTransfom();//通过这个<a href="/tag/mingcheng/" target="_blank" class="keywords">名称</a>格式化器,可以将里面的<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>名进行一些处理。默认情况下,会<a href="/tag/zidong/" target="_blank" class="keywords">自动</a>根据<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>的路径在zip中创建有关的<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>夹。 file.Add(Server.MapPath("/Content/images/img01.jpg")); file.CommitUpdate(); buffer = new byte[ms.Length]; ms.Position = 0; ms.Read(buffer,buffer.Length); } Response.AddHeader("content-disposition","attachment;filename=test.zip"); Response.BinaryWrite(buffer); Response.Flush(); Response.End(); }
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,buffer.Length);
  }
  Response.AddHeader("content-disposition","attachment;filename=" + zipFileName);
  Response.BinaryWrite(buffer);
  Response.Flush();
  Response.End();
}

和pageload同层代码

#region INameTransform 成员 public string TransformDirectory(string name) { return null; } public string TransformFile(string name) { return Path.GetFileName(name); } #endregion

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的jQuery相关文章