Ciao.
Da quello che ho visto e che ho capito, mi pare che la prima colonna del gridview sia del tutto inutile. Alla fine, se lo scopo è quello di visualizzare documenti, ma senza far vedere dove sono archiviati, basta usare un database.
Anche se tu lo disprezzi, Access va benissimo. Una tabella con, per esempio, id_documento, data, categoria, descrizione e percorso_file, giusto per semplificare.
Il gridview (io non lo uso) potrebbe essere qualcosa del genere:
codice:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PagerSettings-Mode="NumericFirstLast" EnableViewState="true" AllowSorting="true" EnablePersistedSelection="true" AutoGenerateColumns="false" >
<SelectedRowStyle BackColor="#009999" />
<Columns>
<asp:BoundField DataField="data" HeaderText="data" SortExpression="data" DataFormatString="{0:d}" />
<asp:BoundField DataField="categoria" HeaderText="categoria" SortExpression="lower(categoria)" />
<asp:BoundField DataField="descrizione" HeaderText="descrizione" SortExpression="lower(descrizione)" />
<asp:TemplateField>
<HeaderTemplate>Pulsante</HeaderTemplate>
<ItemTemplate>
<asp:Button ID="AddButton" runat="server" CommandName="documento" CommandArgument="<%# CType(Container,GridViewRow).RowIndex %>" Text="documento" CausesValidation="False" OnClientClick="return apri_popup(this.name)" UseSubmitBehavior="False" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>Link</HeaderTemplate>
<ItemTemplate>
<a href="#" onclick="apri_popup1(<%# getk(Container)%>);return false;">documento</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Io ho messo, per prova, un pulsante e un link.
Il pulsante server è più difficile (non impossibile) da gestire; mentre il link è molto più facile da gestire.
Per esempio, la funzione getk(Container) è, lato server:
codice:
Protected Function getk(container As Web.UI.IDataItemContainer) As String
Dim r As GridViewRow = CType(container, GridViewRow)
Dim key As Integer = CInt(Me.GridView1.DataKeys(r.RowIndex)(0))
Return key.ToString
End Function
Come vedi ti restituisce un id, col quale entri nel database, recuperi il campo percorso, leggi il file, e lo restituisci al chiamante, per esempio in un popup
comunque, certe precauzioni sono inutili. Basta premere F12 e trovi quello che vuoi, per esempio:
[link]http://fiat2000.it/files/allegati/STO%20RICOSTRUZIONE%204.2%20DEFINITIVO%20(ALLEGATO %20C).pdf[/link]