Как заставить загрузку файла, ссылка которого находится внутри GridView? - PullRequest
2 голосов
/ 07 апреля 2010

У меня есть Gridview, который показывает список файлов, ранее загруженных на сервер с элементом управления HyperLink, чтобы иметь возможность его загрузки, мне нужно принудительно загружать каждый раз, когда пользователь нажимает на одну из предоставленных ссылок, чтобы Файл не открывается непосредственно в браузере (обычно это изображения). В настоящее время у меня есть функция побочного сервера, которая вызывает загрузку, но я не знаю, как назначить эту функцию каждой из ссылок, когда пользователь нажимает на нее.

Ответы [ 2 ]

1 голос
/ 09 апреля 2010

Спасибо, ребята, я работал с помощью ImageButton и назначил ему RowCommand, который вызывает мой метод ForceDownload:

HTML:

<asp:TemplateField HeaderText="Download File">
   <ItemTemplate>
      <asp:ImageButton ID="ibDownload" runat="server" CommandName="Download" CommandArgument='<%# Bind("path") %>' />
   </ItemTemplate>
</asp:TemplateField>

Код позади:

Private Sub gvFileList_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvFileList.RowCommand
    If e.CommandName = "Download" Then
        Dim myPath = Server.MapPath(e.CommandArgument)
        ForceDownload(HttpContext.Current, myPath)
    End If
End Sub
0 голосов
/ 07 апреля 2010

Создать страницу загрузки, которая принимает параметры загрузки по GET-запросу

в Gridview создать поле шаблона со столбцом гиперссылки, чтобы открыть страницу загрузки во внешнем окне, чтобы загрузить отправленный файл, после чего он сам закрывается, я предоставил пример кода

<Columns>
 <asp:TemplateField>
  <ItemTemplate>
   <a href="downloadPage.aspx?filename=<%# Eval("File") %>" target="_blank">Download</a>
  </ItemTemplate>
 </asp:TemplateField>
</Columns>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...