GridView nidificate: pervafore qualcuno mi può aiutare?

Obiettivo: ad ogni Post del gridview Post dovrebbero associati più commenti del gridview Commenti

Questi sono i codici ma la pagina no viene caricata.

<asp:GridView ID="gvPost" runat="server" AutoGenerateColumns="False"
CssClass="gv3" ShowHeader="False" CellPadding="5" DataKeyNames="IDPost"
EmptyDataText="Nessun Post Pubblicato!" onrowdatabound="gvPost_RowDataBound"
GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Foto" ItemStyle-Width="50px">
<ItemTemplate>
<asp:ImageButton ID="imgPartner" ImageUrl='<%# "~/it-it/_partners/" + Eval("IDUtente") + ".jpg" %>' ToolTip='<%# Eval("Utente") %>' Width="50px" Height="50px" CommandArgument='<%# Eval("IDUtente") %>' onclick="imgPartner_Click" runat="server">
</asp:ImageButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:GridView ID="gvCommenti" runat="server" AutoGenerateColumns="False"
CssClass="gv3" ShowHeader="False" CellPadding="5" DataKeyNames="IDPost"
onrowdatabound="gvCommenti_RowDataBound"
GridLines="None" AllowPaging="True" PageSize="3">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="imgPartnerCom" ImageUrl='<%# "~/it-it/_partners/" + Eval("IDUtente") + ".jpg" %>' ToolTip='<%# Eval("IDUtente") %>' Width="35px" Height="35px" CommandArgument='<%# Eval("IDUtente") %>' onclick="imgPartner_Click" runat="server" ImageAlign="Top">
</asp:ImageButton>
<asp:Label ID="lblNote" Text='<%# Eval("Note") %>' runat="server" Width="250">
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle CssClass="gvHeader" />
<FooterStyle CssClass="gvFooter" />
<RowStyle CssClass="gvRow2" />
</asp:GridView>


... e nel cs...

protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{

// Carica tutti i Post al primo accesso
LoadPost();

// Carica tutti i Commenti al primo accesso
LoadCommenti();

}
}

protected void gvPost_RowDataBound(object sender, GridViewRowEventArgs e)
{
// Righe
if (e.Row.RowType == DataControlRowType.DataRow)
{
// Recupera record dati
DataRowView riga = (DataRowView)e.Row.DataItem;

}

}

protected void gvCommenti_RowDataBound(object sender, GridViewRowEventArgs e)
{
// Righe
if (e.Row.RowType == DataControlRowType.DataRow)
{
// Recupera record dati
DataRowView riga = (DataRowView)e.Row.DataItem;

// Recupero campi
Label lblNote = (Label)e.Row.FindControl("lblNote");

// Formattazione campi
lblNote.Text = riga["Note"].ToString();
}

}
..
// Funzione per caricamento Grid Post
private void LoadPost()
{
String msg = "";
DataTable dt = new DataTable();
Post clsPost = new Post();

dt = clsPost.GetAllPost(ref msg);

if (msg == "")
{
gvPost.DataSource = dt;
gvPost.DataBind();

}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "clientScriptAlert", clsUtility.PopUpMessage("Errore di sistema.\\nContattare l'amministratore."));
}
}

// Funzione per caricamento Grid Commenti
private void LoadCommenti()
{
String msg = "";
DataTable dt = new DataTable();
Commento clsCommento = new Commento();

dt = clsCommento.GetByPost(gvPost.items[i].FindControl("IDPost"), ref msg);

if (msg == "")
{
gvCommenti.DataSource = dt;
gvCommenti.DataBind();

}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "clientScriptAlert", clsUtility.PopUpMessage("Errore di sistema.\\nContattare l'amministratore."));
}
}


Grazie a tutti in anticipo!!!