2012-02-22 266 views
0

任何人都可以幫助我如何使用超鏈接或LinkBut​​ton控件從gridview打開文件? 在我的應用程序中,我想從我的應用程序中指定的路徑(例如「c:// example /」)打開文件,並將gridview中的所有文件名顯示爲超鏈接,直到它正常工作,但是當我在這是爲超級鏈接無任何反應的文件名點擊,我設置navigateurl爲:GridView超鏈接打開文件

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

PLZ幫我出

回答

0

你應該指定「文件」後綴。該網址看起來應該像下面的:

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


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

你可以有問題,反正如果路徑containt任何withspaces報道here

最好的方法是使用一個HTML鏈接

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

謝謝,我想通了,使用鏈接按鈕而不是超鏈接 – Hardworker 2012-02-27 10:54:38

0

什麼是'FullName' - 如果它類似於C:/ Somefile,那麼這不會起作用,因爲它指向服務器硬盤上的一個位置,而不是一個URL。你需要一個指向文件位置的虛擬目錄,或者需要某種頁面來讀取和提供這些項目。

2

在一個<asp:TemplateField>,我說:

<a id="A1" runat="server" target="_blank" href='<%# DataBinder.Eval(Container, "DataItem.ProofOfPayment", "~/uploads/payments/{0}") %>'>View Payment</a> 
0

我喜歡做這種方式,使鏈接文本的動態。

<ItemTemplate>         
       <asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" Text='<%# Bind("DataField") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.DataField", "~/Folder/{0}") %>'></asp:HyperLink> 
</ItemTemplate> 
0

它可以在Gridview的Row命令事件上完成。

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(); 
 
    } 
 
}

在文件名中給你的文件的路徑。當你點擊鏈接按鈕時,這個文件將被打開。

您可以點擊此鏈接爲完整的例子:

How to Open or view Images & Docx Files in Gridview in Asp.Net (C#)?