0

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

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

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

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

我怎样才能解决这个问题?我尝试使用更新面板来包含 ListView 但它不起作用。

4

3 回答 3

1

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

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

希望能帮助到你

于 2009-02-26T18:37:17.623 回答
1

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

于 2009-02-26T18:37:55.890 回答
0

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

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

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

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

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

于 2009-02-27T15:44:50.477 回答