将图像按钮图像网址重置为默认网址

本文关键字:图像 默认 按钮 | 更新日期: 2023-09-27 18:30:41

我有一个ImageButton进入中继器。

我的 ASP.NET 代码是:

<asp:Repeater ID="rpt" runat="server">
  <ItemTemplate>
    <asp:ImageButton ID="img_sport" runat="server" CommandName='<%# Eval("IDSport") %>' CommandArgument='<%#  Eval("SportName") %>' ImageUrl='<%#  Eval("SportName","~/Images/{0}-trp.png") %>' OnCommand="img_sport_Click" />
  </ItemTemplate>
</asp:Repeater>

从代码隐藏中,我以这种方式更改所选/单击图像的 ImageUrl:

[...]
ImageButton btn = (ImageButton)sender;
btn.ImageUrl = "/Images/" + sportName + "-trp-selected.png";
[...]

但是,如果我单击其他图像,我将有两个/三个/四个图像显示为选中,所以首先,在我的代码隐藏中,我想将 ImageUrl 重置为默认值,然后我将新的 ImageUrl 仅应用于所选/单击的 ImageButton。

那么,如何重置所有图像网址?

将图像按钮图像网址重置为默认网址

在看到您的代码时,我猜您想在单击图像时更改图像,以便用户可以识别是否选择了图像。如果你想实现这一点,为什么不尝试JavaScript它可以在不回发的情况下处理同样的事情。

请参阅下面的代码示例,其中包含相同的JavaScript函数:

<asp:Repeater ID="rpt" runat="server">
    <ItemTemplate>
        <asp:ImageButton ID="img_sport" runat="server" ImageUrl='<%#  Eval("SportName","~/Images/{0}-trp.png") %>' OnClientClick='<%# "return ManageSelection(this,'"" + Eval("SportName").ToString() + "'");"%>' />
    </ItemTemplate>
</asp:Repeater>
<script type="text/javascript">
    function ManageSelection(control, sportName) {
        var selectedImage = '/Images/' + sportName + "-trp-selected.png";
        $(control).attr('src', selectedImage);
        return false;
    }
</script>