使用 jQuery 的具有复杂功能的弹出窗口

Posted

技术标签:

【中文标题】使用 jQuery 的具有复杂功能的弹出窗口【英文标题】:Popups with complex functionality using jQuery 【发布时间】:2010-10-10 03:29:03 【问题描述】:

我正在使用 jQuery 模拟一个弹出窗口,用户将在其中选择一系列过滤器,我希望使用这些过滤器在原始窗口中重新绑定一个 ListView。

“弹出窗口”是通过 ajax 请求打开的,内容实际上是一个不同的 aspx 文件(呈现的输出被注入到充当弹出窗口的 div 中)。

我在这个弹出窗口中有另一个 ListView,它有分页。

我的问题是,由于弹出窗口实际上是同一页面中 div 内的 html 内容,所以当我尝试分页时,整个页面回发并被替换为具有过滤器的 aspx。

我该如何解决这个问题? 我尝试使用更新面板来包含 ListView,但它不起作用。

【问题讨论】:

(如果不清楚,请告诉我,我尽量描述情况,英语不是我的主要语言) 【参考方案1】:

$("div.yourthingie").hide();

将隐藏您要显示的部分 :) 不要即时生成弹出窗口,而是保留已经制作的一小部分,并在开始时将其隐藏,当您需要显示时,取消隐藏并添加您需要的信息.

希望对你有帮助

【讨论】:

它有帮助,谢谢...我想我会选择这个,它让我发疯【参考方案2】:

要么摆脱 HTML“外壳”,只生成

及其内容,要么使用 IFRAME。

【讨论】:

【参考方案3】:

首先,让我们考虑一下正在发生的事情。当您提交原始页面时,您将进行“正常”的请求/响应之旅以获取代码。页面上有一个 JQuery AJAX 位,它触发本质上是模式对话框的内容。期望的效果是用户玩新页面,直到他们找出过滤器并提交回来。问题是当有人分页时,这个“模态页面”会丢失信息。

理论上,解决方案相当简单。您必须将“过滤器”存储在弹出页面中,以便可以重新发送它们以及分页信息。或者您必须在用户分页时缓存结果集。

我要解决这个问题的方法是创建一个静态页面,其中包含“过滤器”,并解决 AJAX 问题,而不是让页面回传到父页面。一旦所有 AJAX 位都正常工作,我会将其链接到弹出例程中,并确保分页仍然没有问题。最后一个问题是创建一个 javascript 例程,该例程发送回父页面并允许父页面将其 JQuery 位发送回服务器。

我不确定等式的 HTML DIV 部分,我认为您可以在没有此解决方案的情况下解决问题。事实上,我相信你可以在不调用 AJAX 的情况下制作“模式弹出”页面,如果可以 a) 通过查询字符串提交过滤器以应用,或者 b) 将表单提交到第二页。查询字符串是一个更简单的选项,但它公开了一些信息。总体而言,伪造表单提交并没有那么困难,但弹出窗口可能会出现问题。

我只是提出了一些想法,但我希望它对你有所启发。

【讨论】:

以上是关于使用 jQuery 的具有复杂功能的弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

window.open 里的resizable=no参数在火狐里无效!有啥方法在火狐里的弹出窗不能拖动大小吗?

jquery在具有高度+重量的弹出窗口中打开url并将参数传递给它

如何在 android studio 的弹出窗口内添加滚动的 listView?

解决selenium自动化上传图片或文件出现windows窗口问题

DuiVision开发教程(18)-弹出窗

修复Extjs5.1.4的弹出窗(window)BUG