0

私の問題は単純です。グリッドビューの最後の列を、コンピューターのローカルにあるファイルへのダウンロード リンクにしたいと考えています。

3列のデータテーブルがあります:

User_id, request_id, FilePath

FilePath は私のコンピューター上のファイルへのパス (文字列) です。3 列目にハイパーリンク フィールドを追加し、それを (DataNavigateUrlField プロパティを使用して) 列 FilePath の内容にリンクしようとしました。

クリックすることさえできないデッドリンクになってしまいました。マウスオーバーで色が変わるだけです。

誰でもそれについての手がかりを持っていますか? どうもありがとう

4

2 に答える 2

1

TemplateField考えられる解決策は、ハイパーリンク列にを使用することです。

<asp:GridView AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <a href='<%# DataBinder.Eval(Container.DataItem, "FilePath") %>'>
                    <%# DataBinder.Eval(Container.DataItem, "FilePath")%>
                </a>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

目的の出力を作成します。

<tr>
    <td>
        <a href='c:/directory/file.xxx'>c:/directory/file.xxx</a>
    </td>
</tr>

aはそのプロパティHyperLinkFieldのファイルパスを受け入れないようです。DataNavigateUrlFields


DataNavigateUrlFormatStringプロパティを設定して、それを裏切ってみました。

<asp:HyperLinkField DataNavigateUrlFormatString="file:///{0}" DataNavigateUrlFields="FilePath" DataTextField="FilePath" />

しかし、問題は残っており、

<tr>
    <td>
        <a>c:/directory/file.xxx</a>
    </td>
</tr>
于 2012-05-03T16:45:45.390 に答える
0

これを使ってみてください

WebClient.DownloadFile(Uri,String)

そして、必要なイベントのハイパーリンクを取得する方法を読んでください

于 2012-05-03T12:11:58.327 に答える