【问题标题】:DataNavigateUrlFields navigating to subfolder instead of correct location.DataNavigateUrlFields 导航到子文件夹而不是正确的位置。
【发布时间】:2012-08-06 18:42:48
【问题描述】:

我有一个数据网格,需要其中一个字段超链接到另一台服务器上的文档。路径采用这种格式:\\server\location\file.doc,但是当我单击数据网格中的单元格时,它变为:http://myASPServer/Subfolder/server/location.file.doc。有什么办法可以强制它转到正确的位置?我知道您可以通过添加 ftp:// 或 http:// 来防止外部网站出现这种情况,但这似乎不适用于打开此服务器位置。有什么建议吗?

【问题讨论】:

    标签: c# asp.net datagrid


    【解决方案1】:

    我相信您的答案可以在 asp.net 论坛http://forums.asp.net/t/1140909.aspx/1 上找到 - 为方便起见,从下面接受答案。

    <Columns>
    <asp:TemplateField>
    <ItemTemplate>
    <asp:HyperLink Text="TextField" id="myHL" runat="server"
     NavigateUrl='<%# "file:///" + DataBinder.Eval(Container.DataItem, "Path").ToString() %>'></asp:HyperLink>
    </ItemTemplate>
    </asp:TemplateField>
    </Columns>
    

    我认为您需要在链接前加上 file:/// 前缀,因为它将是 file:///\\server\location\file.doc

    【讨论】:

    • 好的,我做到了,这就是我所拥有的:&lt;asp:TemplateField&gt; &lt;ItemTemplate&gt; &lt;asp:HyperLink Text='&lt;%# DataBinder.Eval(Container.DataItem, "MSDSFileName").ToString() %&gt;' id="filenameLink" runat="server" NavigateUrl='&lt;%# "file:///" + DataBinder.Eval(Container.DataItem, "serverFilename").ToString() %&gt;' Target="_blank"&gt;&lt;/asp:HyperLink&gt; &lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt;。现在,当我尝试点击链接时,它什么也没做。
    • 当我滚动链接时,它已将 url 更改为以 file:///// 开头,而不是 file:///\\。在firefox中,如果我查看firebug,url是正确的,但似乎链接不正确。
    • 发现这篇博文 rubenlaguna.com/wp/2007/04/20/… 解释了正在发生的事情和解决方法 - 在 IE 和 chrome 中尝试一下,看看会发生什么!
    • 哦,这是一个 Stack 帖子,它也应该有所帮助! stackoverflow.com/questions/5317834/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多