如何通过单击ItemTemplate来扩展ListView的ItemTemplates的内容?

时间:2014-07-16 12:57:25

标签: javascript asp.net asprepeater

我有ListViewItemTemplates。每个Repeater中都有一个ItemTemplate,显示每个ItemTemplate中的文件列表(即类别)。目前,所有类别中的所有文件都是可见的。但我想仅显示类别,通过单击每个类别,展开它并显示该类别中的文件。

我该怎么做?

以下是我目前的代码:

<asp:ListView runat="server" ID="lvDownloadFilesViewer">
    <ItemTemplate>  
        <div class="downloadList-Headline">
            <%#Eval("Title")%>
        </div>

        <div class="downloadList">
            <ul>                
                <asp:Repeater ID="Repeater1" runat="server" EnableViewState="false"     DataSource='<%# DataBinder.Eval(Container.DataItem, "DownloadFilesItemList") %>'>                   

                <ItemTemplate>                                       
                    <li style="width:100%">
                        <div class="FileDescription"><%# DataBinder.Eval(Container.DataItem, "Description")%>
                        </div>                            
                    </li>
                </ItemTemplate>

                </asp:Repeater>
            </ul>
        </div>
    </ItemTemplate>
</asp:ListView>

1 个答案:

答案 0 :(得分:2)

使用它:

<style>
    .downloadList
    {
        display: none;
    }
    .downloadList-Headline
    {
        cursor: pointer;
    }
</style>
<script>
    $(document).ready(function () {
        $('.downloadList-Headline').click(function() {
            $(this).next().toggle('medium');
        });
    });
</script>
<asp:ListView runat="server" ID="lvDownloadFilesViewer">
    <ItemTemplate>
        <div class="downloadList-Headline">
            [+] <%#Eval("Title")%>
        </div>
        <div class="downloadList">
            <ul>
                <p></p>
                <asp:Repeater ID="Repeater1" runat="server" EnableViewState="false" DataSource='<%# DataBinder.Eval(Container.DataItem, "DownloadFilesItemList") %>'>
                    <ItemTemplate>
                        <li style="width:100%">
                        <div class="FileDescription"><%# DataBinder.Eval(Container.DataItem, "Description")%></div>
                        <a href="<%#Page.ResolveClientUrl((string)Eval("FilesPath")) %>" class="<%# DataBinder.Eval(Container.DataItem, "FilesTypeTitle")%>"
                    target="_blank">
                    <%# DataBinder.Eval(Container.DataItem, "FilesTitle")%></a>
                    </li>
                    </ItemTemplate>
                </asp:Repeater>
            </ul>
        </div>
    </ItemTemplate>
</asp:ListView>