(我认为这适用于普通的ASP.NET Web部件和SharePoint托管的Web部件)

Web部件具有一个“导出”按钮,可将输出呈现为csv并设置适当的标题,以便在Excel中打开。

钩住按钮click事件,清除响应,添加适当的标题和内容类型很简单-example

但是我注意到,如果将此代码添加到Web部件并附加了调试器,则如果页面上有此(或任何其他)Web部件的多个实例,则HTTPApplication.CompleteRequest或Response.End都不会停止处理/页面。生命周期和所有页面控件的所有事件仍然会触发。

在此示例中,这样做很浪费,因为其他Web部件不需要运行-它们所做的任何事情都无法获得响应。

有什么办法阻止其他Web部件被渲染?

最佳答案

如何创建另一个页面为您执行实际的导出功能,然后让导出链接仅链接到该另一页面呢?

这将解决必须手动结束请求的问题,因为您可以精确控制响应中的输出。

10-04 12:26