Deven-Singh Ответов: 1

Как скрыть элемент управления img, если в базе данных нет фотографий


 <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<div class="carousel-item <%#GetActiveClass(Container.ItemIndex) %>">
<img id="image" src='data:photos/jpg;base64,<%# Eval("photos") != System.DBNull.Value ? Convert.ToBase64String((byte[])Eval("photos")) : string.Empty %>' alt="image" height="" width="" />  
                                  
<asp:Label ID="lbl_eng" runat="server" Text='<%# Eval("news_eng") %>' Width="100%" />

<asp:Label ID="lbl_hindi" runat="server" Text='<%# Eval("news_hindi") %>' Width="100%" />
</div>
</ItemTemplate>
</asp:Repeater>


Что я уже пробовал:

Элемент управления img не является asp:image, это простой элемент управления html-изображением, и вы хотите скрыть его, если в базе данных нет фотографии. Будет решаться с помощью метода Repeater dataitembound (), но не знаю, как это возможно.


Пожалуйста помочь...

1 Ответов

Рейтинг:
8

F-ES Sitecore

Если вы делаете это на основе строк, то вы можете добавить тег "runat" в свой img и установить его видимость в false, как и любой другой серверный компонент (это будет что-то вроде System.Web.UI.HtmlControls.HtmlElement в вашем коде-позади). Если причина, по которой вы не хотите этого делать, заключается в том, что это изменит "идентификатор" вашего img, то это проблема, которую вы копите для себя позже ... идентификаторы должны быть уникальными, поэтому, если вы думаете, что можете использовать этот идентификатор "изображения" в javascript, то вы не можете этого сделать.

Если вы действительно не хотите добавлять runat в img, то вместо этого оберните его в заполнитель

<asp:PlaceHolder runat="server" ID="MyPlaceHolder">
<img .... />
</asp:PlaceHolder>


В вашем Repeater1_ItemDataBound даже вы можете установить видимость заполнителя в false, если для этой строки нет изображения.

https://asp-net-example.blogspot.com/2009/02/aspnet-placeholder-example-how-to-use.html


Maciej Los

5ed!