asp.net转发器中的嵌套列表

时间:2010-09-24 11:24:38

标签: c# asp.net repeater

我有一个看起来像这样的转发器:

<HeaderTemplate>
    <div>
</HeaderTemplate>
<ItemTemplate>
<asp:PlaceHolder runat="server" id="plhContent"/>
</ItemTemplate>
<FooterTemplate>
    </div>
</FooterTemplate>

然后我有一个看起来像的数据集:

Title | Category
"Title1","Legal"
"Title2","Legal"
"Title3","Finance"
"Title4","Accounting"

数据集按类别排序。

我想要实现的输出是:

<div><!-- from headertemplate -->
    <div id="legal">
        <ul>
            <li>Title 1</li>
            <li>Title 2</li>
        </ul>
    </div><!--end legal div-->
    <div id="Finance">
        <ul>
            <li>Title 3</li>
        </ul>
    </div><!--end finance div-->
    <div id="Accounting">
        <ul>
            <li>Title 4</li>
        </ul>
    </div><!--end accounting div-->
</div><!-- from footertemplate -->

然而,我真的在挣扎于逻辑。在我的代码中,我基本上得到了:

Add a bulleted list
Add a listitem

但这对行“title2”造成了问题,因为它不需要新的项目符号列表,它只需要在转发器的上一次迭代中将新的列表项添加到项目符号列表中。

我怎么可能这样做?

提前致谢 人

1 个答案:

答案 0 :(得分:1)

一个选项是创建某种临时结构来保存DataSet的内容,使Repeater能够处理以便以您需要的方式显示信息。

我正在考虑将其转换为类别列表,每个类别都是一个项目列表。然后你通过像这样的DataSet项(伪代码):

每个项目     如果类别列表中不存在类别         创建“类别项”列表         将项目(标题)添加到列表中         将此列表添加到类别列表中     其他         找到类别         将项目(标题)添加到列表

转发器应该能够处理它