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

时间:2009-02-26 17:31:29

标签: c# asp.net jquery listview popup

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

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

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

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

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

3 个答案:

答案 0 :(得分:1)

$( “div.yourthingie”)隐藏();

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

希望有所帮助

答案 1 :(得分:1)

要么摆脱HTML“crust”,只需生成< div>及其内容,或使用IFRAME。

答案 2 :(得分:0)

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

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

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

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

我正在解雇一些想法,但我希望它会为你带来一些刺激。