0

我正在寻找我应该走的最佳路线的方向。我已经发布了几次,偏离了一些推荐的设计模式。根据我想要完成的工作,我还没有真正得到一个好的方向。我是使用异步处理的新手,希望能得到一些正确方向的指点。到目前为止,在我之前的一篇文章中,我被称为无知,因为我要求提供代码示例。请理解我一直在阅读所有内容,并尝试了我在互联网上可以找到的所有内容。不用说,我可以有很多不同的方向,我不确定哪个是最好的。

我将在高层次上解释我正在尝试做的事情,如果有人可以通过为我指出正确的方向来帮助我,我将不胜感激。另外,如果有人可以向我指出一些代码示例,我会喜欢的。我不介意阅读这些材料,但如果我能看到代码与它所说的内容相一致,那就更有意义了。我发现的大多数文档都有代码示例或部分代码示例,我一直在尽最大努力尝试使用我发现的内容来满足我的特定需求。到目前为止,运气并不好。我承认,当谈到 ASYNC 处理时,我想我是无知的。:)

无论如何,这就是我想要完成的。我忽略了我可能考虑使用的任何特定技术,以避免关于我发布的内容是否过时或落后的争论。我正在寻找一个正确方向的观点,并且在这一点上我对任何事情都持开放态度。我只需要让这个工作。

这是我需要做的基础知识

  1. 我有一个正在使用的 ASP.Net 网站“项目”。
  2. 我有一个用于使用 Active Reports 7 打印报告的屏幕。
  3. 我的任务是允许用户单击“打印/预览”按钮并启动报告处理。
  4. 在报表运行时,我需要让用户能够单击“取消”按钮并终止处理并返回报表屏幕。(因此,在报告处理期间,UI 需要做出响应,以便用户可以单击取消按钮。)
  5. 在处理报告时,我需要显示一条弹出消息以指示报告正在运行。
  6. 当报告完成处理后,我需要隐藏此弹出消息,以向用户指示报告已完成。然后我需要打开报告以供用户查看。目前,这是我们在报表处理代码期间准备的一个 JavaScript 函数,它打开一个新窗口并调用报表查看器。(因此,报告完成后,我需要能够调用 javascript 函数。)

如果有人能指出我正确的方向,我将不胜感激。我不介意做腿部工作和阅读大量文档。我只需要能够知道我在看什么将为我提供上述功能。就像我之前所说的,无论是否无知,如果我能得到一些示例工作代码(不要求任何人为我编写代码,只是一些我可以逐步完成并帮助了解正在发生的事情的代码),那将有很大帮助。

提前感谢您的时间和考虑。

4

1 回答 1

1

由于您希望在服务器端发生一些操作以及 UI 响应和显示进度。显示事件的进展。我建议使用 Signalr.Net。

http://signalr.net/

http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

这是一个实时 Web api,您可以使用它创建一个集线器,该集线器具有“ProcessReport”和“cancelProcessing”等功能,您可以在单击按钮打开连接时从 javascript 调用它,并使用取消按钮显示进度弹出窗口。在 js 中向集线器注册一个客户端事件说“updatestatus”,一旦操作完成,可以从服务器调用它以关闭弹出窗口并最终关闭信号器连接。同样,在弹出的取消单击中,您可以再次调用中心函数 cancelProcessing 并执行取消并使用 updateStatus 回调。

希望这可以帮助。

于 2013-03-17T06:39:40.070 回答