2017-02-13 7 views
0

私はWebアプリケーションを作成しています。私のアプリでは、グリッドビュー内にリンクボタンとリンクボタンがあります。ユーザがリンクボタンをクリックすると、次のコードは、グリッドビューのリンクボタンを使用するC#

protected void lnkDownload_Click(object sender, EventArgs e) 
{ 
    string filePath = (sender as LinkButton).CommandArgument; 

    if(string.IsNullOrEmpty(filePath)) 
    { 
     ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "", "alert('No File to download.');", true); 
     return; 
    } 
    Response.ContentType = ContentType; 
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath)); 
    Response.WriteFile(filePath); 
    Response.End(); 
} 

を実行する必要があり、私のテーブルで

<asp:LinkButton ID="lnkDownload" Text="Download" CommandArgument='<%# Eval("FileData") %>' runat="server" OnClick="lnkDownload_Click"></asp:LinkButton> 

すべてのファイルのリンクは(~\userpic\chart.png)のように、そこにある

:私のLinkBut​​tonコントロールは、このようになりますしかし、私がコードを実行すると、私はファイルをダウンロードすることができません。このメソッドをデバッグすると、デバッグブレークポイントにヒットしません。私のコードで何が間違っていますか?あなたのリンクボタン上

+0

このリンクの[リンクボタンのクリックイベントを直接処理する]セクションを確認してください:[link](http://www.dotnetbull.com/2013/05/how-to-handle-click-event-of -linkbutton.html) – RRM

+0

'GridView'コードも投稿してください。 –

答えて

1

あなたがGridViewの列内のこのasp:LinkButtonを表示することが意図されているように、このOnClickイベントをのCommandName属性

<asp:LinkButton ID="lnkDownload" Text="Download" CommandArgument='<%# Eval("FileData") %>' runat="server" OnClick="lnkDownload_Click" **CommandName="Download"**></asp:LinkButton> 

とあなたの行のコマンドイベント

protected void YourGridview_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     if (e.CommandName == "Download") 
     { 
      /*your code to download here */ 
     } 
    } 
0

に追加されます火事ではない。グリッドビューにはOnRowCommand="GridView_RowCommand" 属性を指定し、lnkDownload_Click()の代わりにGridView_RowCommand()メソッド内にOnClickのコードを記述する必要があります。私はこれがうまくいくことを望みます。やってみて。

関連する問題