有人可以帮我解决如何使用Hyperlink或LinkButton控件从gridview打开文件的问题吗? 在我的应用程序中,我想从我的应用程序中指定的路径打开文件(例如“c:// example /”),并在gridview中显示所有文件名作为超链接,直到它正常工作,但当我点击作为超链接的文件名时没有任何反应,我将navigationurl设置为:
<asp:HyperLink ID="HyperLink1" runat="server" **Text='<%# Eval("Name") %>'
NavigateUrl='<%# bind("FullName") %>'**></asp:HyperLink>
请帮助我
答案 0 :(得分:2)
在<asp:TemplateField>
中,我添加了:
<a id="A1" runat="server" target="_blank" href='<%# DataBinder.Eval(Container, "DataItem.ProofOfPayment", "~/uploads/payments/{0}") %>'>View Payment</a>
答案 1 :(得分:0)
你应该指定“file”后缀。网址应如下所示:
// “file://\\Server\Folder\FileName.ext“
<asp:HyperLink ID="HyperLink1" runat="server" **Text='<%# Eval("Name") %>'
NavigateUrl='file://<%# bind("FullName") %>'**></asp:HyperLink>
如果路径包含任何带有报告here
的空间,则无论如何都可能有问题最好的方法是使用HTML链接
<a runat="server" target="_blank" href='<%# DataBinder.Eval(Container, "DataItem.FilePath") %>'>
答案 2 :(得分:0)
什么是'FullName' - 如果它类似于C:/ Somefile,那么这不会起作用,因为它指向服务器硬盘驱动器上的某个位置,而不是URL。您需要一个指向文件位置的虚拟目录,或某种类型的页面来阅读和提供这些项目。
答案 3 :(得分:0)
我喜欢这样做以使链接文本动态化。
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" Text='<%# Bind("DataField") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.DataField", "~/Folder/{0}") %>'></asp:HyperLink>
</ItemTemplate>
答案 4 :(得分: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();
}
}
在fileName中提供文件路径。当您单击链接按钮时,此文件将打开。
您可以点击此链接获取完整示例:
How to Open or view Images & Docx Files in Gridview in Asp.Net (C#)?