0

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

我突然想到这可能是 XMLHttpRequest 或 AJAX 的完美用途,但我不知道该怎么做(或者这样做是否可能或聪明)。有人能给我指路吗?

我安装了 AJAX 扩展,但我不想使用 AJAX 控件工具包。


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

4

3 回答 3

1

创建弹出窗口与 AJAX 几乎没有关系,而与 JavaScript 有更多关系。请参阅此处的 jQuery 对话框库。然后你可以使用 jQuery 的 AJAX API 来做你的服务器脏工作:)

jQuery 对话框用户界面

--

Bill Konrad
Devtacular - Web 开发教程

于 2009-02-09T16:04:00.427 回答
0

您可以使用DHTML Window 小部件。它提供了多种方式来显示模态或非模态窗口。它还支持 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");
于 2009-02-09T16:24:15.200 回答
-1

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


编辑:

我不认为它会限制弹出窗口的数量,现在可以使用 jQuery + jQuery UI 之类的库来完成一些简洁的工作,您可以根据需要简单地创建尽可能多的这些 DIV/层并使其可移动, 可调整大小等。真正的弹出窗口仅有而这些没有的是它们不会出现在选项卡面板/任务栏上。

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

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

于 2009-02-09T16:08:29.887 回答