Repeater does not use emptytemplate by default. Try to use the custom control to rewrite databind. I think it is too complicated. I accidentally found an almost invincible method from a foreigner's blog:
Most of us are using repeaters to display data also we faced the situation of retrieving no result to display so the repeater will be empty or we will need to handle this case from code behind to check number of items and if zero we show a label with no result found or no records to display message.
We can do this with a simpler way and with no need to write anything in code behind, let's see how
Code
< ASP: repeater ID = " Rptra " Runat = " Server " >
< Itemtemplate >
<! -- Add your item template here -->
</ Itemtemplate >
< Footertemplate >
< ASP: Label ID = " Lblempty "
Text = " No result " Runat = " Server "
Visible = ' <% # Bool. parse (rptra. Items. Count = 0). tostring () %> ' >
</ ASP: Label >
</ Footertemplate >
</ ASP: Repeater >
here we will display a label with "no result" message in the footer we just need to add a label and set it's text property with the message we want.