在使用了Telerik的页面,直接向Response中写文件流,是不能直接引导浏览器下载的,因为Telerik使用了大量的ajax,它会拦截请求,进行封装解析,读到我们写入Response中的文件流,会报如下错误:

Uncaught Error: Sys.WebForms.PageRequestManagerParserErrorException: 未能分析从服务器收到的消息。之所以出现此错误,常见的原因是:

解决办法是,在控件的交互事件中,关闭Telerik的ajax请求即可。
首先在Telerik的RadScriptBlock中创建事件处理
<script type="text/javascript" language="javascript">
    function onRequestStart(sender, args) {
        if (args.EventArgument == "")
            return;
        if (args.EventArgument == 0 || args.EventArgument == 1 ||
            args.get_eventTarget().indexOf("ExportToExcelButton") >= 0 ||
                args.get_eventTarget().indexOf("ExportToWordButton") >= 0 ||
                args.get_eventTarget().indexOf("ExportToCsvButton") >= 0) {
            args.set_enableAjax(false);
        }
    }
</script>
然后在RadAjaxManager中启用事件处理:
<ClientEvents OnRequestStart="onRequestStart" />

over

相关文章:

  • 2021-06-21
  • 2022-12-23
  • 2022-12-23
  • 2021-06-07
  • 2021-06-24
  • 2022-02-21
  • 2021-11-27
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
  • 2021-05-27
  • 2021-10-30
  • 2021-08-14
相关资源
相似解决方案