HeaderTemplate och FooterTemplate renderas trots att en Repeater är tom
Ett problem jag stötte på i ett projekt här om veckan var att HTML-kod jag skrivit i HeaderTemplate och FooterTemplate för en Repeater-kontroll renderades, fast Repeatern inte innehöll någon data.
Jag gjorde lite efterforskningar och kom fram till följande:
- Om det finns en datakälla för Repeatern, så renderas innehållet i HeaderTemplate och FooterTemplate, fast datakällan inte har någon data.
- Om det inte finns en datakälla, det vill säga datakällan returnerar ett nullvärde, så renderas inte Repeatern över huvud taget.
Lösning på problemet: kolla att datakällan existerar och att den har fler än noll poster i sig:
if (myList != null && myList.Count>0)
{
rptListing.DataSource = myList;
rptListing.DataBind();
}
Uppdatering: Använder du exempelvis en SqlDataReader så får du kolla om den booleska egenskapen HasRows är sann i stället för att använda Count.