使用updatePanel单击缩略图更改图像源

时间:2010-03-30 14:16:57

标签: asp.net listview updatepanel onclick

例如,我有这个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 个答案:

答案 0 :(得分:1)

您当前正在使用HyperLink控件,该控件将用户定向到NavigateUrl属性的值。如果它转到一个单独的页面,它将如何修改ProductImageBig控件的URL?

一个选项是将HyperLink控件更改为ImageButton,然后在代码隐藏中为“OnCommand”属性指定一个方法。

在后面的代码中,您可以将sender对象强制转换为ImageButton,检索其ImageURL,然后设置ProductImageBig的URL

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

如果您在名为“updatePanel”的UpdatePanel中包含整个标记,并且您已正确设置属性,则可以在设置Url后更新它。