Repeater inde i en repeater
Jeg har et problem med en til mange relation tabel, ved at de ikke vises korrekt. Som man kan se i mit kode<asp:Repeater ID="RepeaterLektioner" OnItemDataBound="Repeater_noter_ItemDataBound" runat="server">
<ItemTemplate>
<div style="margin:auto; width:300px; height:auto;">
<%#Eval("Dato", "{0: dd. MMMM yyyy}") %> - <%#Eval("Titel") %><br />
<%#Eval("introtekst") %><br />
<asp:Repeater ID="Repeater_noter" runat="server">
<ItemTemplate>
<%#Eval("notenavn") %><br /><br />
</ItemTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>
Så er Repeater_noter er inde i RepeaterLektioner. Der er flere noter til en lektion. Men jeg kan ikke få de korrekte noter ud til den lektion enten får jeg kun den første note, som viser sig på alle lektioner eller den sidste. Jeg ved hellere ikke hvordan jeg skal tackle denne problemstilling.
min codebehind ser sådan her ud
protected void RepeaterLektion()
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["masterConnectionString"].ToString();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM KursusLektion WHERE VisLektion = 1 and FK_KursusId = " + Request.QueryString["kursusid"];
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
Session["id"] = reader["LektionId"];
RepeaterLektioner.DataSource = reader;
RepeaterLektioner.DataBind();
conn.Close();
}
protected void Repeater_noter_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Repeater Repeater_noter = null;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater_noter = e.Item.FindControl("Repeater_noter") as Repeater;
}
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["masterConnectionString"].ToString();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from kursusnoter where FK_kursuslektion = " + Session["id"];
conn.Open();
Repeater_noter.DataSource = cmd.ExecuteReader();
Repeater_noter.DataBind();
conn.Close();
}
Jeg har prøvet ved at hvergang, jeg henter noget fra den første repeater at der oprettes en session med den nuværende session. Men koden kører hele den første repeater igennem, og så den inderste repeater en gang