使用XMLHttpRequest显示弹出窗口

时间:2009-02-09 15:59:53

标签: asp.net popup xmlhttprequest

我正在编写一个显示项目列表的ASP.NET 3.5 Web应用程序。我希望能够在用户选择项目时显示包含详细信息的非模态弹出窗口。我希望能够同时显示几个细节弹出窗口。 (即,用户可以单击某个项目以查看其详细信息,然后单击另一个项目以获取另一个弹出窗口。)目前我在回发期间调用RegisterStartupScript,以便在页面重新编写时将“window.open(...)”脚本写入页面-renders。当然,问题在于这需要整页回发和刷新。

对我来说,这可能是XMLHttpRequest或AJAX的完美用法,但我不知道该怎么做(或者它是否可能或聪明地做到这一点)。有人能给我指路吗?

我安装了AJAX Extensions但我不想使用AJAX Control Toolkit。


编辑: 一些说明:当用户选择项目时,会引发自定义事件。在服务器上,我处理此事件并使用一些服务器端逻辑来构造一个URL,然后我使用RegisterStartupScript构建一个“window.open(myUrl ...)”脚本。但是发回整个页面来做这件事似乎效率低下,我想知道我是否可以调用一个简单的服务器端函数来构造url并将其发送回来而不必往返整个页面。

3 个答案:

答案 0 :(得分:1)

创建弹出窗口与AJAX关系不大,而且与JavaScript有很多关系。请在此处查看jQuery对话库。然后,您可以使用jQuery的AJAX API来完成服务器脏工作:)

jQuery Dialog UI

-

比尔康拉德 Devtacular - Web Development Tutorials

答案 1 :(得分:0)

您可以使用DHTML Window widget。 它提供了许多显示模态或非模态窗口的方法。 它也支持AJAX。

您可以使用dhtmlwindow打开新窗口,或 dhtmlmodal打开一个新的模态窗口。

当然,您可以根据自己的要求进行编辑。 样品:

var insWindow = dhtmlmodal.open("insbox", "iframe","UserMaster.aspx?" + queryStr, "User Master", "width=425px,height=500,center=1,resize=0,scrolling=1", "recal");

答案 2 :(得分:-1)

你真的需要打开一个新窗口吗?如今,在同一窗口中打开绝对定位的DIV或当前页面顶部的新图层风靡一时。


编辑:

我认为它不会限制弹出窗口的数量,现在有一些可以用jQuery + jQuery UI这样的库完成的东西,你可以根据需要简单地创建这些DIV /层。使它们可移动,可调整大小等。只有真正的弹出窗口才有,而这些不是它们没有出现在选项卡面板/任务栏上。

是的,您将被限制在打开主页面的窗口大小,但是,我并不认为这是一个问题,因为大多数人无论如何都会在最大化的浏览器窗口中浏览。

对于你来说,实现oldschool典型的弹出窗口无疑要容易得多,但它也会遇到最终用户弹出窗口阻止程序的问题。刚出现问题@我的工作,他们需要在证书认证过程中出于某种原因弹出一个弹出窗口,一旦雅虎发布了他们的工具栏的新版本,就退出工作了。)