HyperLink в GridView

Просто программер
Дата: 17.04.2007 15:35:28
Добрый день. Заполняю программно GridView, при этом один из столбцов должен содержать ссылки на файлы, которые лежат на сервере (нужно, чтобы при нажатии на ссылку в GridView открывался файл). Т.е. я добавляю столбец типа HyperLinkField и в свойстве DataNavigateUrlFormatString должен задать формат строки, например "http://servername/{0}" Что именно нужно записать в это поле, чтобы открывались расшаренные файлы? Нужно http заменить на что-то ещё (пробовал file)? Или у меня проблема в кодировке строк, потому что при запуске страницы там отображаются строки типа как в Гугле в строке поиска, при этом пути к файлам содержат русские буквы и символы, отсюда я так понимаю и заковыка. При попытке перейти по ссылке выдаётся сообщение "Не удаётся найти требуемую страницу". Как сделать правильные ссылки в GridView?
prokhorovserge
Дата: 18.04.2007 14:05:09
Нужно чтобы файл открывался в отдельной странице или в той же? Если первое, то лучше использовать LinkButton, в параметрах передавать атрибуты для поиска файла и по PostBack-у возвращать Response для загрузки файла. Если второе - то опять же LinkButton и по PostBack-у возвращать вместо Render страницы содержимое указанного файл.
Serge
Просто программер
Дата: 18.04.2007 16:38:54
А как в GridView использовать LinkButton? Я взял GridView, чтобы использовать Paging. Собственно у меня затык возник не в технологии, а в том, как правильно указать ресурс (кракозябры, как я уже писал). Я не понял как LinkButton решит проблему - как в предложенном Вами решении продублировать LinkButton и другие столбцы (т.е. множество записей) с Paging'ом (записей много)?
з.ы. про пейджинг в первом посте забыл написать(((
prokhorovserge
Дата: 18.04.2007 17:33:50
<Columns>
 <asp:TemplateColumn>
  <ItemTemplate>
   <a href="#" onclick="ExportOrder('<%# DataBinder.Eval(Container, "DataItem.id")%>')">
    <img alt="Загрузить" src="images/save.gif" border="0"></a>
  </ItemTemplate>
 </asp:TemplateColumn>
 <asp:TemplateColumn Visible="False">
  <ItemTemplate>
   <asp:LinkButton runat="server" Text="" CommandName="Select" CausesValidation="false">
    <img alt="Загрузить" border="0" src="images/save.gif"></asp:LinkButton>
  </ItemTemplate>
 </asp:TemplateColumn>
 <asp:TemplateColumn>
  <ItemTemplate>
      <a target="_blank" href='OrderForm.aspx?id=<%# DataBinder.Eval(Container, "DataItem.id")%>'><img alt="Загрузить" border="0" src="images/note.gif"></a>
  </ItemTemplate>
 </asp:TemplateColumn>
 <asp:BoundColumn DataField="Date" SortExpression="Date" HeaderText="Дата" DataFormatString="{0:dd.MM.yy}"></asp:BoundColumn>
...
Serge
Просто программер
Дата: 07.05.2007 09:46:34
Спасибо за ответ, а как сделать такую вещь динамически, из кода? Т.е. число столбцов заранее неизвестно и все они формируются на сервере, в зависимости от действий пользователя. Опыта работы с ASP.NET очень мало, напишите, пожалуйста, поподробнее.
Просто программер
Дата: 07.05.2007 15:02:28
Отбой) Реализовал как во втором посте и динамически. Думал, что можно попроще, но это уже не так важно. Спасибо за ответы!