2015-12-28 70 views
0

我與我的孩子與listitem問題。它不會不告訴他們正確的順序或列出他們走出正確父母與子女的關係與中繼器

public class Lektion 
{ 
    public Lektion() 
    { 

    } 

    public Lektion(int LektionId,int visLektion, DateTime Dato, string Titel, string introtekst, List<kursusnoter> noter) 
    { 

     this.LektionId = LektionId; 
     this.visLektion = visLektion; 
     this.Dato = Dato; 
     this.Titel = Titel; 
     this.introtekst = introtekst; 
     this.noter = noter; 

    } 


    public int LektionId { get; set; } 
    public int visLektion { get; set; } 
    public DateTime Dato { get; set; } 
    public string Titel { get; set; } 
    public string introtekst { get; set; } 
    public List<kursusnoter> noter { get; set; } 


    public class kursusnoter 
{ 
    public kursusnoter() 
    { 
     // 
     // TODO: Add constructor logic here 
     // 
    } 
    public kursusnoter(int kursusnoterId, int FK_KursusLektion, string notenavn, string notelink) 
    { 
     this.kursusnoterId = kursusnoterId; 
     this.FK_Kursuslektion = FK_Kursuslektion; 
     this.notenavn = notenavn; 
     this.notelink = notelink; 
    } 

    public int kursusnoterId { get; set; } 
    public int FK_Kursuslektion { get; set; } 
    public string notenavn { get; set; } 
    public string notelink { get; set; } 
} 



public List<Lektion> IndlaesLektionerMedNoter() 
    { 
       var lektioner = new List<Lektion>(); 
       SqlConnection Conn2 = new SqlConnection(); 
       Conn2.ConnectionString = ConfigurationManager.ConnectionStrings["masterConnectionString"].ToString(); 
       SqlCommand cmd2 = new SqlCommand(); 

       cmd2.Connection = Conn2; 


       cmd2.CommandText = "select KursusLektion.*, Kursusnoter.* from KursusLektion INNER JOIN kursusnoter ON kursusnoter.FK_Kursuslektion = KursusLektion.LektionId where KursusLektion.FK_KursusId = @kursusid"; 
       cmd2.Parameters.AddWithValue("@kursusid", SqlDbType.Int).Value = Request.QueryString["kursusid"]; 
       Conn2.Open(); 
       var reader2 = cmd2.ExecuteReader(); 
       var prevId = 0; 
       Lektion lektion = null; 
       while (reader2.Read()) 
     { 
      var id = Convert.ToInt32(reader2["LektionId"]); 
      if (prevId != id) 
      { 
       prevId = id; 
       lektion = new Lektion(); 
       lektion.LektionId = id; 
       lektion.visLektion = (int)reader2["VisLektion"]; 
       lektion.Dato = (DateTime)reader2["Dato"]; 
       lektion.Titel = Convert.ToString(reader2["Titel"]); 
       lektion.noter = new List<kursusnoter>(); 
       lektioner.Add(lektion); 

      } 
      var note = new kursusnoter(); 
      note.kursusnoterId = Convert.ToInt32(reader2["kursusnoterId"]); 
      note.notenavn = Convert.ToString(reader2["notenavn"]); 
      note.notelink = Convert.ToString(reader2["notelink"]); 
      lektion.noter.Add(note); 
      } 

        return lektioner; 


    } 

我現在得到

enter image description here

但意思是這個

enter image description here

什麼

因此,任何人有一個想法,我做錯了什麼?

PS。在ASPX這個樣子的

<asp:Repeater id="rptLektioner" runat="server"> 
        <ItemTemplate> 
         <div style="margin-left:145px; margin-top:50px; width:600px; height:auto;"> 
         <%#Eval("Dato", "{0: dd. MMMM yyyy}") %> - <%#Eval("Titel") %><br /> 
          <%#Eval("introtekst") %><br /><br /> 
         <asp:Repeater ID="Repeater1" runat="server" DataSource='<%# Eval("noter") %>'> 
          <ItemTemplate> 

           <a href='PDF/<%#Eval("notelink") %>'>[<%#Eval("notenavn") %>]</a><br /><br />       


          </ItemTemplate> 
         </asp:Repeater></div> 
        </ItemTemplate> 
       </asp:Repeater> 

回答

0

我通過編輯SQL修正了問題

select KursusLektion.*, Kursusnoter.* FROM KursusLektion INNER JOIN kursusnoter ON KursusLektion.LektionId = kursusnoter.FK_Kursuslektion WHERE (KursusLektion.FK_KursusId = @kursusid) ORDER BY KursusLektion.LektionId