4

我有一个 asp 数据列表,设置如下:

<asp:DataList ID="dlListItems" ClientIDMode="Static" Width="100%" runat="server" RepeatColumns="2" ItemStyle-BorderColor="#E8E6E7" ItemStyle-BorderStyle="Solid" ItemStyle-BorderWidth="1px"
        RepeatDirection="Horizontal" RepeatLayout="Table">

在数据列表中,每个节点都包含一个带有“divList”类的 div

我需要能够实现一些东西,所以不是所有节点都显示在加载和一个按钮来加载更多。不需要发生服务器端操作,只需显示隐藏行的能力。

我设法通过隐藏然后一次显示 10 个 div 来使其工作。虽然这很好用,但仍会显示数据列表中的表行,因此您会在数据列表底部看到很大的空白行。

 $(function () {
    $(".divList").slice(0, 10).show(); 
    $("#load").click(function (e) { 
        e.preventDefault();
        $(".divList:hidden").slice(0, 10).fadeIn(1500);          
    });
});

希望有人可能对我如何在表格行而不是 div 上实现这一点提出一些建议,以防止数据列表中的空白间距。请记住(据我所知)我不能将任何 id 的类分配给 datalist 生成的行。

4

2 回答 2

2

你应该试试这个

$(function(){
    var trs =  $("#dlListItems tr");
    trs.hide();
    trs.slice(0, 10).show(); 
    $("#load").click(function (e) { 
        e.preventDefault();
        $("#dlListItems tr:hidden").slice(0, 10).fadeIn(1500);          
    });
});

首先隐藏 dlListItems 中的所有 Table 行,然后获取要显示的 trs ,因为您不想显示那些具有隐藏 div 的行。

于 2013-02-07T11:30:00.320 回答
1

试试这个

$(function () {
  $(".divList").parent().parent().hide();
  $(".divList").parent().parent().slice(0, 5).show();
  $("#load").click(function (e) {
     e.preventDefault();
     $(".divList:hidden").parent().parent().slice(0, 5).fadeIn(1500);
  });
});

作为dlListItems动态控件的 ID,它可以在客户端动态更改(取决于控件的嵌套)。所以我想这将是一个更好的方法。

于 2013-02-07T11:38:51.033 回答