伙计们,
我想知道如何填补 ASP.NET 网络表单中服务器端和客户端之间的空白,如何从服务器端触发客户端和虎钳诗句?如何从服务器端打开 jQuery UI 对话框?如何获得带有回发的模态对话框,例如,如果我在 jQuery UI 模态对话框中有一个分页的 GridView 并且当用户更改页面时它会关闭。我需要知道什么是最好的填补这个空白?
伙计们,
我想知道如何填补 ASP.NET 网络表单中服务器端和客户端之间的空白,如何从服务器端触发客户端和虎钳诗句?如何从服务器端打开 jQuery UI 对话框?如何获得带有回发的模态对话框,例如,如果我在 jQuery UI 模态对话框中有一个分页的 GridView 并且当用户更改页面时它会关闭。我需要知道什么是最好的填补这个空白?
Asp.net 默认的解决方案是使用更新面板。这将创建 ajax 请求并将它们发送到服务器。(照顾你的分页问题。)
要打开有关服务器上发生的事件的对话框:
默认情况下 Http 是无连接的,您将无法在开箱即用的 asp.net 中执行此操作。
您可以查看诸如comet 之类的方法。这可以在 asp.net 中使用异步调用来完成。
网上有一些使用 asp.net 的彗星样本。但这可能涉及对您的代码的重大更改。还有一些像Signar这样的库可能会有所帮助。
当涉及到在 Web 环境中与客户端交互的服务器时,您必须处理相当严格的限制。我将在这里的回答中笼统地回答。
当您想将某些内容从客户端传递到服务器时,这通常很容易做到。一种相对常见的方法是通过 AJAX。最简单的 ASP.NET WebForms 通过<form>
提交进行通信。
做相反的事情(即服务器向客户端发起消息),这是一个更困难的用例。HTTP,只是从它的实现方式来看,很容易client -> server
,但server -> client
几乎是不可能的。它只是不是为此而设计的。如果没有客户端首先要求,服务器就不能向客户端发送一些东西。这就是一个大问题:客户端如何知道服务器何时需要发送一些东西?有点违背了目的。
当然,目前有一些东西正在用来弥补这一点。其中一个更有希望的是web sockets,这是一种可靠、具体的方式,允许服务器在客户端不请求的情况下将消息推送到客户端(请注意,开箱即用的 IIS 7 不支持 web插座AFAIK)。另一个是 Comet,甚至是通过定期轮询的 AJAX。
您似乎想要的功能的一个很好的包装是SignalR。我已经使用它一段时间了,到目前为止它似乎工作得很好。它在可用时使用 Web 套接字,而在不可用时静默使用回退。