日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

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

發布時間:2025/3/20 asp.net 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jquery配合.NET实现点击指定绑定数据并且能够一键下载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接

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实现点击指定绑定数据并且能够一键下载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。