这个语句怎么写?我把文件放在网站根目录下UploadFile文件夹下面,里面有很多子文件夹

kindtoadsd 2010-08-24 10:12:31
我把每个文件的相对路径放在数据库中,我想在GRIDVIEW中直接打开这个文件。
asp:TemplateField>
<ItemTemplate>
<a href="~<%#DataBinder.Eval(Container.DataItem,"FilePath")%>" target="_blank">查看</a>
</ItemTemplate>
</asp:TemplateField>

最后出来的相对路径总是不对,我数据库中没有存“~”,只存了“\UploadFiles\顿汉、哈特\2009\4/hhhhhh.xls”
怎么能直接打开文件呢?

我总是写不对上面的语句,感觉应该可以这样来做的,求高手帮忙
...全文
212 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
蝶恋花雨 2010-08-24
  • 打赏
  • 举报
回复
你想要的地址是什么样子的。

<a href="<%#"abis10" + Eval("FilePath")%>" target="_blank">去掉斜线试试。
<a href="<%#Server.MapPath("abis10" + Eval("FilePath"))%>" target="_blank">这样也试试
kindtoadsd 2010-08-24
  • 打赏
  • 举报
回复
http://localhost:23525/abis10/Web/RunTarget/abis10//UploadFiles/顿汉、哈特/2009/8/集团4月份%20经济运行分析表.xls
这是地址栏里的内容
kindtoadsd 2010-08-24
  • 打赏
  • 举报
回复
\UploadFiles\顿汉、哈特\2009\8/集团4月份 经济运行分析表.xls
页面上的源码里的
<a href="abis10/\UploadFiles\顿汉、哈特\2009\8/集团4月份 经济运行分析表.xls" target="_blank">下载</a>


这是我改了你的代码
<ItemTemplate>
<a href="<%#"abis10/" + Eval("FilePath")%>" target="_blank">下载</a>

</ItemTemplate>
</asp:TemplateField>

因为我的网站是abis10
蝶恋花雨 2010-08-24
  • 打赏
  • 举报
回复
数据库存放的路径贴出来。然后获取的地址贴出来。
kindtoadsd 2010-08-24
  • 打赏
  • 举报
回复
波斯马:你能说的更详细一点吗?
蝶恋花雨 2010-08-24
  • 打赏
  • 举报
回复
把你数据库存放的地址发出来看看。
用1楼的测试了吗
1.Server.MapPath("/") 应用程序根目录所在的位置 如 C:\Inetpub\wwwroot\
2.Server.MapPath("./") 表示所在页面的当前目录
注:等价于Server.MapPath("") 返回 Server.MapPath("")所在页面的物理文件路径
3.Server.MapPath("../")表示上一级目录
4.Server.MapPath("~/")表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置 如:C:\Inetpub\wwwroot\Example\
注:等效于Server.MapPath("~")。
kindtoadsd 2010-08-24
  • 打赏
  • 举报
回复
蝶恋花雨,不好意思,还是不对,出来的是我所在位置的路径,不是绝对路径
萤火架构 2010-08-24
  • 打赏
  • 举报
回复
1、替换斜杠\为/
2、使用服务器控件代替a,就可以使用~了
蝶恋花雨 2010-08-24
  • 打赏
  • 举报
回复
写错了应该是<a href="<%#"UploadFiles/" + Eval("FilePath")%>">
蝶恋花雨 2010-08-24
  • 打赏
  • 举报
回复
<a href=""UploadFiles/"+<%#DataBinder.Eval(Container.DataItem,"FilePath")%>" target="_blank"> 这样试试
kindtoadsd 2010-08-24
  • 打赏
  • 举报
回复
不对呀
q107770540 2010-08-24
  • 打赏
  • 举报
回复
数据库中存储绝对路径
imfor 2010-08-24
  • 打赏
  • 举报
回复
<a href="<%# Server.Mapath(DataBinder.Eval(Container.DataItem,"FilePath").ToString())%>" target="_blank">查看</a>
kindtoadsd 2010-08-24
  • 打赏
  • 举报
回复
<asp:TemplateField>
<ItemTemplate>
<a href='/abis10<%#(DataBinder.Eval(Container.DataItem,"FilePath").ToString())%>' target="_blank">下载</a>
</ItemTemplate>
</asp:TemplateField>


这是最终对的结果,其实一开始(蝶恋花雨)告诉我的是对的,是我自己没有写对.
kindtoadsd 2010-08-24
  • 打赏
  • 举报
回复
<asp:TemplateField>
<ItemTemplate>
<a href="<%# Server.MapPath("~")+(DataBinder.Eval(Container.DataItem,"FilePath").ToString())%>"
target="_blank">下载</a>
</ItemTemplate>
</asp:TemplateField>
这样可以了,不过是目标另存为,证明地址是对的了,如果我想直接打开怎么办,用哪个控件?

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧