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!!!