(我认为,这既适用于普通的ASP.NET Web部件和SharePoint托管Web部件)如何从一个Web部件内停止页面执行
Web部件有一个“出口”按钮呈现输出为csv并设置相应的标题,以便在Excel中打开它。
挂钩的按钮单击事件,清除反应,加入适当的标题和内容类型是微不足道的 - example
不过,我已经注意到,如果这个代码添加到Web部件和调试器附着那么如果在页面上有这个(或任何其他)Web部件的多个实例,然后既不是HTTPApplication.CompleteRequest或Response.End停止处理/页面生命周期,并且所有页面控件的所有事件仍然触发。
这个例子很浪费,因为其他Web部件不需要运行 - 他们所做的任何事情都不会得到响应。
任何阻止其他Web部件被渲染的方法?
这将工作,几乎肯定是大多数情况下去的方式 - 但在这种情况下,我有Web部件连接提供一些数据(在渲染阶段之前的方式),我会失去该上下文。我的解决方法是在OnPreRender中将所有Page.Controls []。设置为false,至少停止RenderWebPart等的运行。 – Ryan 2011-03-22 19:27:15
您可以在新窗口中打开链接,这样您就不会离开页面。任何必要的数据都可以通过查询字符串传递或存储在会话变量中。 – 2011-03-22 20:01:57