Отрисовка пустого ретранслятора
Когда Repeater
не содержит элементов, он вообще не отображается в HTML, даже HeaderTemplate
или FooterTemplate
. Мне нужно манипулировать им на стороне клиента, даже если он пуст.
Есть ли способ всегда отображать Repeater в HTML?
4 ответа:
В
<FooterTemplate>
добавьте метку с некоторым пустым текстом данных и установите ее видимое свойство в false.<FooterTemplate> <table> <tr> <td> <asp:Label ID="lblEmptyData" Text="No Data To Display" runat="server" Visible="false"> </asp:Label> </td> </tr> </table> </FooterTemplate>
Теперь проверьте данные при привязке повторителя, если никакие строки не возвращаются, то сделайте метку видимой в противном случае никаких действий.
Подробнее здесь .
Как сказал @Saurabh, используйте
<FooterTemplate>
добавить метку с указанием Вашего сообщения в свойстве Text и установить его видимое свойство false следующим образом:<FooterTemplate> <%-- Label used for showing Error Message --%> <asp:Label ID="ErrorMessage" runat="server" Text="Sorry!!" Visible="false"> </asp:Label> </FooterTemplate>
Тогда в коде-за используйте следующую логику; если нет данных, покажите сообщение, в противном случае, покажите данные следующим образом:
protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { Repeater rpt = sender as Repeater; // Get the Repeater control object. // If the Repeater contains no data. if (rpt != null && rpt.Items.Count < 1) { if (e.Item.ItemType == ListItemType.Footer) { // Show the Error Label (if no data is present). Label ErrorMessage = e.Item.FindControl("ErrorMessage") as Label; if (ErrorMessage != null) { ErrorMessage.Visible = true; } } } }
<asp:Repeater ID="rptList" runat="server" DataSourceID="odsList"> ... <FooterTemplate> <%if (rptList.Items.Count == 0) { %> **Your message** <%} %> </FooterTemplate> </asp:Repeater>
Попробуйте это
protected bool IsDataEmpty { get { ICollection list = Repeater1.DataSource as ICollection; return list.Count == 0 ? true : false; } }
В Разметке:
<table width="80%"> <tr runat="server" visible='<%# IsDataEmpty %>'> <td> There is no data to display </td> </tr>
Для пошагового перехода по ссылке: Ссылка