Открывающий файл гиперссылки GridView - PullRequest
0 голосов
/ 22 февраля 2012

Может кто-нибудь помочь мне, как открыть файл из gridview, используя элементы управления Hyperlink или LinkButton?В моем приложении я хочу открыть файлы по пути, указанному в моем приложении (в качестве примера, например, «c: // example /») и показать все имена файлов в gridview в виде гиперссылки, пока она не будет работать должным образом, нокогда я нажимаю на имя файла, которое является гиперссылкой, ничего не происходит, я устанавливаю навигатор следующим образом:

<asp:HyperLink ID="HyperLink1" runat="server" **Text='<%# Eval("Name") %>' 
  NavigateUrl='<%# bind("FullName") %>'**></asp:HyperLink>

PLZ, помогите мне

Ответы [ 5 ]

2 голосов
/ 13 ноября 2012

В <asp:TemplateField> я добавил:

<a id="A1" runat="server" target="_blank" href='<%# DataBinder.Eval(Container, "DataItem.ProofOfPayment", "~/uploads/payments/{0}") %>'>View Payment</a>
0 голосов
/ 23 апреля 2016

Это можно сделать по событию командной строки Gridview.

protected void grdAttachment_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "ViewFile")
    {
        string fileName = Server.MapPath("~/Attachment/" + e.CommandArgument.ToString());           
        Process process = new Process();
        process.StartInfo.UseShellExecute = true;
        process.StartInfo.FileName = fileName;
        process.Start();
    }
}

В fileName укажите свой путь к файлу. При нажатии на кнопку ссылки этот файл будет открыт.

Вы можете перейти по этой ссылке для полного примера:

Как открыть или просмотреть изображения и файлы Docx в Gridview в Asp.Net (C #)?

0 голосов
/ 13 апреля 2013

Мне нравится делать так, чтобы текст ссылки был динамичным.

<ItemTemplate>                                   
              <asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" Text='<%# Bind("DataField") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.DataField", "~/Folder/{0}") %>'></asp:HyperLink>
</ItemTemplate>
0 голосов
/ 22 февраля 2012

Что такое 'FullName' - если это что-то вроде C: / Somefile, то это не сработает, так как оно указывает на местоположение на жестком диске вашего сервера, а не на URL.Вам понадобится либо виртуальный каталог, указывающий на местоположение ваших файлов, либо какая-то страница для чтения и обслуживания этих элементов.

0 голосов
/ 22 февраля 2012

вы должны указать суффикс "file".URL-адрес должен выглядеть следующим образом:

// “file://\\Server\Folder\FileName.ext“


<asp:HyperLink ID="HyperLink1" runat="server" **Text='<%# Eval("Name") %>' 
 NavigateUrl='file://<%# bind("FullName") %>'**></asp:HyperLink>

, который вы могли бы возникнуть в любом случае, если бы путь содержал любые пробелы, как сообщается здесь

Лучший способ - использоватьHTML-ссылка

<a runat="server" target="_blank"  href='<%# DataBinder.Eval(Container, "DataItem.FilePath") %>'>
...