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

解决办法是,在控件的交互事件中,关闭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