2010-08-04 55 views
0

我有一个带有repeater \ datalist控件的asp.net页面。我在页面加载期间绑定这个网格,并显示相册的前20个缩略图。是否有可能使用Ajax(Jquery)从DataList Repeater获取HTML?

可以有多个页面,我有一个寻呼机1 2 3.当用户点击第二页(2)时,我去获取第二套相册缩略图并显示。

目前这是一个回传,当我显示第二页整个页面被刷新。

现在甚至有可能使用Ajax \ jquery获取htmls的第二页,并在其上显示所有缩略图吗?这样页面永远不会回发帖子,我可以避免页面刷新?

回答

0

您有几种选择:

  • ASP:为的UpdatePanel你的中继

优点:容易做到的,只是包装你的中继用的asp:UpdatePanel控件。

缺点:你将发送一个帖子回到所有视图状态的服务器,服务器运行整个页面的生命周期,只是回页面的一部分。其他缺点here

  • jQuery.load插入刚刚页面

的部分优点:也很容易实现,你就需要管理加载正确的页面在你的aspx页面的GET请求(即将?page = 2添加到查询字符串并在服务器端进行处理)。之后,您将转发器包装在一个div中,您可以在客户端识别并执行jQuery.load()(请查看文档here

缺点:您仍将发送整页回到客户。此外,如果您依赖ViewState在DataList中进行回发,则可能会导致该问题。

  • 纯Ajax调用来获取数据,并使其回到客户端上

优点:最佳的什么被发送回服务器和从服务器到客户端方面。

缺点:您将在客户端使用您自己的渲染/模板引擎替换DataList/Repeater以使其工作。

+0

asp:UpdatePanel不是一个选项,因为我没有部署巨大的。net ajax dlls – kheya 2010-08-04 23:39:34

+0

在你的第三选择:说我用一个jQuery函数替换网格,循环结果和构建网格。这对文本数据来说很好,但我有缩略图,我只是从数据库中获取文件路径。 您的解决方案要求我将元素(jquery)的src属性设置为这些图像路径?这些不会向图像文件的Web服务器发送一个单独的http请求吗? 我每页有50个缩略图。那么我最终会向服务器发送50个单独的http请求以获取每个页面的缩略图图像?不对? 我想发送一个http ajax请求并获取所有缩略图。可行? – kheya 2010-08-05 00:06:52

+0

我的输入按钮不起作用。无法添加新行。大段落 – kheya 2010-08-05 00:07:41

0

HTML 5具有内联图像数据的概念,无需使用单独请求拖动位的href。直到第5版在这里考虑使用jQuery来获取给定页面#作为输入的缩略图网址列表。使用非常少的jQuery,您可以使用最轻的服务器往返重新绘制您现在使用中继器渲染的内容。

如果您关心多个图像GET,则需要使用子域(images.yoursite.com)引用图像路径以使浏览器将图像与主页面数据并行拉出。浏览器使用最多2个并发线程来拉取页面数据有一些奇怪的规则,但前提是这些源不在同一个根URL。

相关问题