需求需點擊綁定的數據,將指定的附件下載下來,並且是批量下載(綁定的數據非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 type='button' class='one-download' onclick='download()'>一键下载</button> function download() { $("#btnDownload").click(); }
<span style="display: none"> <asp:Button ID="btnDownload" OnClick="btnDownload_Click" Text="确定" runat="server" /> <input type="text" id="arrayGuid" runat="server" /> </span>
和pageload同層代碼
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"); }