我正在使用网格中的超链接,我正在下载已存储在我的应用程序文件夹中的文件。当文件存在于文件夹中时它工作正常但如果测试我删除了文件,然后尝试下载我收到错误The resource cannot be found.
并且我的页面崩溃。如何处理此文件未找到的异常?我也在我的PageLoad上应用了调试点,但调试并没有到那里。
这是我的aspx代码
<asp:TemplateField HeaderText="DOWNLOAD">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" NavigateUrl='<%# Eval("PATH") %>' >Download</asp:HyperLink>
</ItemTemplate>
<HeaderStyle BorderWidth="1px" BorderStyle="Dotted" BorderColor="#DDDDDD" Font-Size="14px"
ForeColor="#333333" Font-Names="Calibri" />
<ItemStyle HorizontalAlign="Center" Width="5%" BorderWidth="0px" ForeColor="#333333"
Font-Names="Calibri" Font-Size="14px"></ItemStyle>
</asp:TemplateField>
答案 0 :(得分:1)
你可以试试这个
虽然不需要将ClientIDMode设置为Static。
<asp:HyperLink ID="HyperLink1" ClientIDMode="Static" runat="server" NavigateUrl='<%# Eval("PATH") %>' Target="_blank" >Download</asp:HyperLink>
检查页面加载(在bowser上)文件是否存在:
jQuery(document).ready(function () {
var url = jQuery("#HyperLink1").prop('href');
jQuery.get(url).done(function () {
// File exists so do nothing
}).fail(function () { // doesn't exist so reset parameters accordingly
jQuery("#HyperLink1").prop('href', 'javascript:void(0)');
jQuery("#HyperLink1").attr('target', '_self');
})
});
将此标记放在head部分,这将引用Google托管的jquery库
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"
type="text/javascript"></script>