ciao
allora ecco il mio problema:
Nella pagina aspx ho un repeater che semplicemente mi ripete dei dati provenienti dal database (delle news), all'interno di questo repeater ho inserito anche un linkbutton che mi fà il postback della pagina, nasconde il repeater della visualizzazione news e mi visualizza un altro repeater dove visualizzo l'intero testo della news (il dettaglio della news selezionata)... è proprio in questo ultimo repeater che ho bisogno di incorporare un altro repeater per visualizzare delle immagini provenienti da una tabella diversa..
Ti faccio vedere il codice :
Questo è il codice del Page_Load dove popolo all'apertura della pagina il repeater che mi visualizza l'elenco delle news
codice:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
string strconn = ConfigurationSettings.AppSettings["Provider"]+Server.MapPath("~/mdb-database/")+ConfigurationSettings.AppSettings["DatabaseName"];
string sql = "SELECT Top 5 Left(testo,100)+'..' as strtesto,id,titolo,img,data_ins FROM news_lavori ORDER by data_ins ASC";
try
{
OleDbConnection conn= new OleDbConnection(strconn);
OleDbCommand cmd=new OleDbCommand(sql,conn);
conn.Open();
OleDbDataReader reader=cmd.ExecuteReader();
Work_repeater.DataSource=reader;
Work_repeater.DataBind();
conn.Close();
}
catch (Exception err)
{
Response.Write(err.ToString());
}
detail_repeater.Visible=false;
}
else
{
//visualizzo e nascondo i rispettivi repeater
detail_repeater.Visible=true;
Work_repeater.Visible=false;
}
}
Questo è il repeater che viene popolato al Page_Load:
codice:
<asp:repeater id="Work_repeater" runat="server">
<ItemTemplate>
<TABLE id="table_into_repeater" cellSpacing="2" cellPadding="0" width="100%" border="0">
<TR>
<TD colSpan="3"><span class="titolo_news"><%#DataBinder.Eval(Container.DataItem,"Titolo")%></span>
<span class="data_news">Data di pubblicazione:
<%#DataBinder.Eval(Container.DataItem,"data_ins","{0:d}")%>
</span>
</TD>
</TR>
<TR>
<TD colSpan="3">[img]<%#DataBinder.Eval(Container.DataItem,"img")%>[/img]<span class="testo_news">
<%#DataBinder.Eval(Container.DataItem,"strtesto")%>
</span>
</TD>
</TR>
<TR>
<TD colSpan="3" align="right" height="1">
<asp:LinkButton id="details_link" runat="server" CssClass="leggi_tutto" CommandName='<%#DataBinder.Eval(Container.DataItem,"id")%>'>Leggi tutto »</asp:LinkButton>
</TD>
</TR>
<TR>
<TD colSpan="3" align="left" height="1"><hr width="400" noshade size="1">
</TD>
</TR>
</TABLE>
</ItemTemplate>
</asp:repeater>
Adesso devo popolare il repeater che mi visualizza il dettaglio della news selezionata quando clicco sul linkbutton corrispondente.. quindi all'evento Item_Command del repeater principale ho scritto:
codice:
private void Work_repeater_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
string id= e.CommandName;
//Response.Write (id);
string strconn = ConfigurationSettings.AppSettings["Provider"]+Server.MapPath("~/mdb-database/")+ConfigurationSettings.AppSettings["DatabaseName"];
string sql_sel_lavoro = "SELECT * FROM news_lavori WHERE id="+id;
OleDbDataAdapter adapter_sel_lavoro= new OleDbDataAdapter(sql_sel_lavoro,strconn);
DataSet ds_sel_lavoro = new DataSet();
adapter_sel_lavoro.Fill(ds_sel_lavoro);
detail_repeater.DataSource=ds_sel_lavoro.Tables[0].DefaultView;
detail_repeater.DataBind();
}
E questo è il repeater che visualizzo:
codice:
<asp:repeater id="detail_repeater" runat="server">
<ItemTemplate>
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="1" CELLPADDING="1">
<TR>
<TD ALIGN="left">Home <span class="testo_news">
> Dettaglio lavoro: </span><span class="titolo_in_dettaglio">
<%#DataBinder.Eval(Container.DataItem,"Titolo")%>
</span>
</TD>
</TR>
</TABLE>
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td width="15%" valign="top">[img]<%#DataBinder.Eval(Container.DataItem,"img")%>[/img]</td>
<td width="85%" rowspan="2" valign="top"><span class="testo_news"><%#DataBinder.Eval(Container.DataItem,"testo")%></span></td>
</tr>
<tr>
<td valign="top"><span class="altre_immagini">Altre immagini di questo lavoro:</span>
<asp:Repeater ID="repeater_miniature" Runat="server">
<ItemTemplate>
ciccio
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</table>
</ItemTemplate>
</asp:repeater>
Come vedi ho inserito anche un altro repeater all'interno di ques'ultimo (è commentato e dentro c'è scritto "ciccio") ed è proprio all'interno di questo repeater annidato che devo visualizzare delle immagini provenienti da una tabella diversa da quella delle news ma che è collegata a quella delle news tramite id (si tratta in pratica di immagini supplementari per quella news)
Spero di essere stato chiaro.. mi puoi aiutare per favore?