Как скрыть asp: изображение, содержащееся в Repeater, если для поля изображения в базе данных установлено значение null - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть asp: Управление изображением внутри asp: Repeater. Изображение отображается с помощью обработчика изображений, который извлекает изображение из базы данных (BLOB) и использует строки запроса для выбора изображения для отображения.

Этот метод работает отлично, однако, когда изображение не отображается, в Internet Explorer появляется красный крестик. Как именно я могу скрыть изображение asp: когда оно недоступно, учитывая архитектуру повторителя?

<asp:Image ID="image" runat="server" ImageUrl='<%# "~/Handler.ashx?id=" + Eval("ID")%>'/>

1 Ответ

2 голосов
/ 14 ноября 2011

Прошло много времени с тех пор, как я сделал веб-формы, но если я правильно помню, вам нужно сделать это в обратном вызове ItemDataBound.

В обратном вызове вы можете сделать что-то вроде следующего кода. Остерегайтесь, это непроверено, только от макушки моей головы, но должно привести вас на правильный путь.

RepeaterItem ri = e.Item;

var image = ri.FindControl("image") as Image;
if (image != null){
    bool isUrlValid = ....;// your check here
    image.Visible = isUrlValid
}
...