Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 是否可以使用Ajax(Jquery)从DataList\Repeater中获取HTML?_Asp.net_Html - Fatal编程技术网

Asp.net 是否可以使用Ajax(Jquery)从DataList\Repeater中获取HTML?

Asp.net 是否可以使用Ajax(Jquery)从DataList\Repeater中获取HTML?,asp.net,html,Asp.net,Html,我有一个asp.net页面,上面有一个repeater\datalist控件。我在页面加载期间绑定这个网格,并显示相册的前20个缩略图 可以有多个页面,其中我有一个寻呼机1 2 3。当用户单击第二页(2)时,我会去获取第二组相册缩略图并显示 目前这是回发,当我显示第二页时,整个页面都会刷新 现在甚至可以使用Ajax\jquery获取第二页htmls,其中包含所有缩略图并进行渲染了吗?这样,页面就不会有回发,我可以避免页面刷新?您有几个选项: asp:中继器的UpdatePanel 优点:简单

我有一个asp.net页面,上面有一个repeater\datalist控件。我在页面加载期间绑定这个网格,并显示相册的前20个缩略图

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

目前这是回发,当我显示第二页时,整个页面都会刷新


现在甚至可以使用Ajax\jquery获取第二页htmls,其中包含所有缩略图并进行渲染了吗?这样,页面就不会有回发,我可以避免页面刷新?

您有几个选项:

  • asp:中继器的UpdatePanel
优点:简单易行,只需使用asp:UpdatePanel控件包装中继器

缺点:您将向服务器发送带有所有viewstate的帖子,服务器运行整个页面生命周期,只需重新运行页面的一部分。其他缺点

  • 加载以仅插入页面的一部分
优点:也很容易实现,您需要管理在aspx页面中为GET请求加载正确的页面(即向查询字符串添加?page=2,并在服务器端处理)。之后,将中继器包装在一个div中,您可以在客户端识别该div并执行jQuery.load()(检查文档中的内容)

缺点:您仍将向客户端发送完整的页面。另外,如果您在数据列表中依赖viewstate进行回发,这可能会把事情搞砸

  • 纯Ajax调用来获取数据并将其呈现回客户端
优点:从发送回服务器和从服务器发送到客户机的内容来看是最佳的


缺点:您将在客户端用自己的呈现/模板引擎替换DataList/Repeater以实现此功能。

HTML5具有内联图像数据的概念,而不需要href来通过单独的请求提取位。在V5开始之前,考虑使用jQuery获取页面的缩略图列表。使用很少的jquery,您就可以使用尽可能轻的服务器往返来重新绘制您现在使用中继器呈现的内容


如果您关心多个图像获取,另一个要实现的优化是使用子域(images.yoursite.com)引用您的图像路径,以使浏览器与主页面数据并行地提取图像。浏览器使用了一些奇怪的规则,即最多使用两个并发线程来提取页面数据,但前提是源不位于同一根URL。

asp:UpdatePanel不是一个选项,因为我没有在您的第三个选项上部署巨大的.net ajax DLL:例如,我用循环结果和构建网格的jquery函数替换了网格。这对于文本数据很好,但我有缩略图&我只是从数据库中获取文件路径。您的解决方案需要我将元素的src attr(jquery)设置为这些映像路径?它们不会向web服务器发送一个单独的http请求来获取映像文件吗?我每页有50个缩略图。因此,我将向服务器发送50个单独的http请求,以获取每个页面的缩略图?不对?我只想发送一个http ajax请求并获取所有缩略图。可行吗?我的输入按钮不起作用。无法添加新行。这么大的段落在任何情况下,你最终都会得到一个html页面的http请求和50个缩略图(可能还有其他css、脚本等请求),甚至在第一个页面请求中。。。这就是它在任何页面上的工作方式。你可以做一些事情来减少请求的数量,比如css精灵(将多个图像组合成一个图像,然后通过css渲染部分图像),但我不确定这是动态/每产品缩略图的好解决方案