Измените источник изображения, нажав на миниатюру, используя updatePanel - PullRequest
0 голосов
/ 30 марта 2010

Например, у меня есть этот ImageViewer.ascx UserControl:

<div class="ImageTumbnails">
  <asp:ListView ID="ImageList" runat="server" ItemPlaceholderID="ItemContainer">
    <LayoutTemplate>
      <asp:PlaceHolder ID="ItemContainer" runat="server" />
    </LayoutTemplate>
    <ItemTemplate>
      <asp:HyperLink runat="server" 
      NavigateUrl='<%# Link.ToProductImage(Eval("ImageFile").ToString())%>'>
        <asp:Image runat="server" ImageUrl='<%# Link.ToThumbnail(Eval("ImageFile").ToString()) %>' />
      </asp:HyperLink>
    </ItemTemplate>
  </asp:ListView>
</div>
<div class="ImageBig">
  <asp:Image ID="ProductImageBig" runat="server" ImageUrl="" />
</div>

При нажатии на миниатюру изменяется источник ProductImageBig с целью гиперссылки.

Как мне добиться этого с помощью UpdatePanel? (Или я смогу)

1 Ответ

1 голос
/ 30 марта 2010

В настоящее время вы используете элемент управления HyperLink, который направит пользователя к значению свойства NavigateUrl. Если он перейдет на отдельную страницу, как он изменит URL-адрес элемента управления ProductImageBig?

Один из вариантов - изменить элемент управления HyperLink на ImageButton, а затем указать в своем коде метод для свойства "OnCommand".

В приведенном ниже коде вы можете привести объект-отправитель к ImageButton, получить его ImageURL, а затем установить URL-адрес вашего ProductImageBig

public void DisplayPhoto(object sender, CommandEventArgs args)
{
     ProductImageBig.NavigateUrl = ((ImageButton)sender).ImageUrl;
     updatePanel.Update();
}

Если у вас есть вся разметка, окруженная UpdatePanel с именем «updatePanel», и у вас правильно установлены свойства, вы можете обновить ее после установки URL.

...