jqueryは.NETと連携してバインディングデータのクリック指定を実現し、ワンクリックでダウンロードできる

高洛峰
リリース: 2016-12-08 14:14:15
オリジナル
1161 人が閲覧しました

指定された添付ファイルをダウンロードするには、バインドされたデータをクリックし、バッチでダウンロードする必要があります (バインドされたデータはデータグリッドではなく、バックグラウンド スプライシング バインディングです)。

レンダリングは次のとおりです:

jqueryは.NETと連携してバインディングデータのクリック指定を実現し、ワンクリックでダウンロードできる

一般的な考え方:

1.jquery は選択されたバインドされたデータの ID を取得し、この ID を配列に割り当て、最後にこの配列の値を非表示データに割り当てます。ページ変数で作成されたオブジェクト

2. バックグラウンドで隠し変数の値を取得し、配列をループしてバインドされた値のダウンロード アドレスを取得し、最後にパッケージ化してダウンロードします

まず、 HTML は背景に従ってバインドされます

<div id="downloadInfo" runat="server"></div>
ログイン後にコピー

次に、添付ファイルをダウンロードするオプションであり、jquery を使用して実装され、ページ内の隠し変数に値を割り当てます。コードは次のとおりです。

背景に接合されているため、ボタンも背景に接合されており、背景ボタンはjsを呼び出します

// 下载附件的选择
  $attach = $("#download-list");
  var arr = []
  $attach.on(&#39;click&#39;, &#39;.no&#39;, function () {
    $(this).toggleClass(&#39;checked&#39;);//设置和移除,选中与不选中
    if ($(this).hasClass(&#39;checked&#39;)) {
      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$=&#39;arrayGuid&#39;]").val(arr);
  });
ログイン後にコピー

jsが隠しボタンイベントをトリガーします

<button type=&#39;button&#39; class=&#39;one-download&#39; onclick=&#39;download()&#39;>一键下载</button>
function download() {
      $("#btnDownload").click();
    }
ログイン後にコピー

Backendワンクリックパッケージダウンロードコード:

<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(&#39;,&#39;);
 
      
      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();
 
    }
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート