当我使用__doPostBack开始回发时,会创建一个文件并返回给用户以在HttpContext.Current.Response
中进行下载。如何停止刷新客户页面的回发
因为我改变Response
,包括它的JavaScript值的页面不被修改
但是,当我没有文件输出时,页面被刷新(因为回传的),并在页面上的JavaScript修改是丢失。
我该如何'停止'回传继续并坚持我目前的页面?我无法使用异步回发,因为我需要回发让用户下载文件。
编辑:在评论一些问题后更多信息:
- 该文件要求在web服务请求。 webservice需要 执行大量查询以确定是否创建文件。 I 宁愿这只发生一次。
- 用户可以拖放一些将在文件 请求中使用的过滤器。如果没有文件可用,用户应该能够更改他的过滤器,这就是为什么该页面不应该改变。
第一个是在我脑海中的(未测试):使用隐藏的按钮为[PostbackTrigger](http://msdn.microsoft .com/en-us/library/system.web.ui.postbacktrigger.aspx)。在您创建文件的serverside处理程序中(或者不是)到目前为止,如果您有文件,请注册javascript以单击此按钮。处理此事件并传递文件。如果没有文件,请不要注册脚本。 – 2012-01-05 16:03:51
它会工作,但我的问题是,该文件是从web服务请求。我不知道在请求完成之前是否会有文件。通过您的解决方案,该文件将被创建两次。这是一个沉重的要求,可能需要一些时间,所以我宁愿不这样做两次。 – 2012-01-05 16:11:58
为什么您需要创建该文件以确定它是否存在?这听起来很奇怪。我会添加一个方法到你的web服务中,它会在不创建的情况下进行检查。 – 2012-01-05 16:14:55