2012-05-03 1 views
0

Моя проблема проста, я хотел бы, чтобы последний столбец моего gridview был ссылкой для загрузки в локальный файл на моем компьютере.Добавить загрузку Гиперссылка в gridview в визуальных студиях 2010

У меня есть DataTable с 3-мя колонками:

User_id, request_id, FilePath 

FilePath является путь (строка) в файл на своем компьютере, то, что я пытался это: В моей GridView на веб-странице Выводят 2 первых столбца (User_id и request_id). В третьем столбце я добавил поле гиперссылки и попытался связать его (со свойством DataNavigateUrlField) с содержимым столбца FilePath.

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

У кого-нибудь есть подсказка об этом? Большое спасибо

+0

Какой код вы используете для создания сетки, какие HTML генерируется, вы посмотрели на [пример] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.hyperlinkcolumn.datanavigateurlfield.aspx)? – CodeCaster

+0

На самом деле весь код, относящийся к gridview (html и C#), создается визуальными студиями, вот что я надеялся, что кто-то, кто знает о поведении визуальных студий, поможет мне, я был на форумах asp.net и в учебнике msdn о datanavigateurl, но ничто не сделало трюк. Итак, вот я на stackoverflow – WizLiz

+0

Пожалуйста, нажмите «Просмотреть источник» в своем браузере и посмотрите на [пример] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.hyperlinkcolumn. datanavigateurlfield.aspx). Также код C# доступен из Visual Studio. – CodeCaster

ответ

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> 

Похоже, что HyperLinkField не принимает путь к файлу для своего свойства DataNavigateUrlFields.


Я попытался перехитрить его, установив DataNavigateUrlFormatString свойство:

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

, но проблема остается, и будет производить только

<tr> 
    <td> 
     <a>c:/directory/file.xxx</a> 
    </td> 
</tr> 
+0

пришли к такому же выводу, что HyperLinkField не принимает FilePath, поэтому я сохранил их на своем сервере и проблема решена, спасибо за ваш ответ – WizLiz

+0

Всегда рад помочь. – Filburt

0

пытаются использовать этот

WebClient.DownloadFile(Uri,String) 

И прочитал это, как получить необходимые мероприятия hyperlink