Salve a tutti,
Sto personalizzando la struttura di un forum, suddividendo le discussioni per categorie, usando un'impaginazione con liste di definizione (DL); ma non riesco a racchiuderle correttamente.

Questo è il codice della pagina .aspx
codice:
<asp:Content ContentPlaceHolderID="cphForums" runat="server">
    <asp:AccessDataSource ID="AccessDataSource1" runat="server"
        DataFile="~/database.mdb"
        SelectCommand="SELECT FORUM_FORUM.F_SUBJECT, FORUM_FORUM.F_DESCRIPTION, FORUM_FORUM.F_ORDER, FORUM_FORUM.CAT_ID, FORUM_FORUM.FORUM_ID, FORUM_CATEGORY.CAT_NAME, FORUM_CATEGORY.CAT_ORDER
        FROM (FORUM_FORUM INNER JOIN FORUM_CATEGORY ON FORUM_FORUM.CAT_ID = FORUM_CATEGORY.CAT_ID)
        ORDER BY FORUM_CATEGORY.CAT_ORDER, FORUM_FORUM.F_ORDER, FORUM_FORUM.FORUM_ID">
    </asp:AccessDataSource>
        <asp:ListView DataSourceID="AccessDataSource1"
                ID="Forums_RPT" runat="server"
                ItemPlaceholderID="itemPlaceHolder"
        >
        <LayoutTemplate>
                <asp:PlaceHolder runat="server" ID="itemPlaceHolder" />
        </LayoutTemplate>
            <ItemTemplate>
               <dl><%# Aggruppa() %>
                  <dd>
                    <dl>
                        <dt><a href="forum.aspx?FORUM_ID=<%# Eval("FORUM_ID") %>"><%# Eval("F_SUBJECT") %></dt>
                        <dd><%# Eval("F_DESCRIPTION") %></dd>
                    </dl>
                  </dd>
               </dl>
            </ItemTemplate>
          </asp:ListView>
</asp:Content>
Questo il codice della pagina .cs
codice:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page
{
    string ultimoForum = null;
    protected string Aggruppa()
    {
        //Get the data field value of interest for this row
        string currentForum = Eval("CAT_NAME").ToString();
        string catForum = Eval("CAT_ID").ToString();

        //Specify name to display if dataFieldValue is a database NULL
        if (currentForum.Length == 0)
        {
            currentForum = "Nessuna Categoria";
        }

        //See if there's been a change in value
        if (ultimoForum != currentForum)
        {
            //There's been a change! Record the change and emit the table row
            ultimoForum = currentForum;

            return string.Format("<dl><dt><a href=\"forum.aspx?CAT_ID={1}\">{0}</a></dt>\r", currentForum, catForum);
        }
        else
        {
            //No change, return an empty string
            return string.Empty;
        }
    }
}
E questo un parte del rendering della pagina in html
codice:
<dl>
    <dl>
        <dt>Lo Staff</dt>
        <dd>
            <dl>
                <dt><a href="forum.aspx?FORUM_ID=7">Regolamento</dt>
                <dd>
                </dd>
            </dl>
        </dd>
    </dl>
    <dl>
        <dd>
            <dl>
                <dt><a href="forum.aspx?FORUM_ID=6">Obiettivo della Legacy</dt>
                <dd>
                </dd>
            </dl>
        </dd>
    </dl>
    <dl>
        <dd>
            <dl>
                <dt><a href="forum.aspx?FORUM_ID=8">Contatti</dt>
                <dd>
                    I contatti della Legacy</dd>
            </dl>
        </dd>
    </dl>
Grazie e saluti.