C# 如何制作ASP';数据列表';细胞可膨胀/可折叠?

C# 如何制作ASP';数据列表';细胞可膨胀/可折叠?,c#,asp.net,datalist,collapsiblepanelextender,C#,Asp.net,Datalist,Collapsiblepanelextender,我有一个aspDataList,它由一个DataTable填充 <asp:PlaceHolder ID="ph3" runat="server"> <asp:DataList ID="dlspec" runat="server" GridLines="Vertical" OnItemDataBound="dlspec_ItemDataBound"> <FooterStyle BackColor="#CCCCCC" />

我有一个asp
DataList
,它由一个
DataTable
填充

<asp:PlaceHolder ID="ph3" runat="server">
    <asp:DataList ID="dlspec" runat="server" GridLines="Vertical" OnItemDataBound="dlspec_ItemDataBound">
        <FooterStyle BackColor="#CCCCCC" />
        <AlternatingItemStyle CssClass="alt-grey" />
        <SelectedItemStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
        <ItemTemplate>
            <table width="320px">
                <tr>
                    <td class="leftcol">
                        <asp:Label ID="lblDimension" runat="server" Text='<%# Eval("Dimension") %>'></asp:Label>:
                    </td>
                    <td class="ProductDetailData">
                        <asp:Label ID="lblName" runat="server" Text='<%# Eval("Attribute") %>'></asp:Label>
                    </td>
                </tr>
            </table>
        </ItemTemplate>
    </asp:DataList> 
</asp:placeholder>

:
问题是,我只需要显示数据列表中的前5个元素,我需要隐藏其余的单元格,并根据请求使它们“可扩展”。 如何在DataList控件中实现这一点?我知道有一些JQuery插件可以用于特定的“div”标记来实现这一点,但我不知道如何在“DataList控件”中实现这一点


这件事很快就需要帮助。。感谢您的宝贵建议。

您需要的是分页。这是一篇向你展示如何完成它的文章

更新:要使用jQuery实现客户端,请看一看。 基本上,在ItemTemplate中的表中添加一个类和一个ShowMore链接,并在页面的某个地方添加javascript代码

在此处添加jQuery脚本(假设row是您的item类,showMore是显示更多项的链接,在本例中,所有项都是为了保持简单):

您可以进一步使用slice()函数来添加更有趣的行为


请注意,如果页面速度较慢,用户将看到整个表,页面加载完毕后,列表中的大多数行将消失。为了避免这种情况,请在呈现数据列表后立即执行javascript。

浏览了本文。。。看起来更像是一种分页技术。我需要加载所有项目,但要使其可折叠/可展开。首先隐藏单元格,然后用户可以请求显示其余元素。你知道还有别的办法吗?那是个好建议。它的工作没有太多的麻烦!谢谢你的帮助!当您键入问题时,请在单击“发布”之前查看预览。你的代码有点…难读=)否则,问题很好。谢谢你的编辑。谢谢你的时间。
$(function() {
    $(".row").slice(2).hide();

    $("#showMore").click(function() {
        $(".row").show();
    });
});